home *** CD-ROM | disk | FTP | other *** search
- 10 '------------------------------------------------------------------
- 20 ' HKANLY.BAS Copyrigit(C) T.Komura / 家計簿システム HK /
- 30 ' / Version 1 /
- 31 ' Version 4.0 1992.08.04-1992.09.14 / 分析プログラム /
- 32 ' 4.0a 1992.10.11 エンゲル係数基数を収入計から支出計に修正
- 33 'HK Version 1.0 1993.01.01 公開バージョン
- 34 ' Version 1.1 1993.08.04 分析条件ウインドウを12ドットフォント化
- 100 '------------------------------------------------------------------
- 120 CLEAR ,,,,300*1024
- 165 DIM CFI$(15)
- 170 GOSUB *CONFIGファイルチェック
- 190 '
- 193 VERN$="1.1" 'バージョンNo.
- 200 *初期設定:'--------------------------------------------------------
- 210 CMD$="CD "+PRGDRV$:SHELL CMD$
- 220 SCREEN@ 0 :COLOR 7,0,0,4:CLS:CONSOLE 5,17,2:MOUSE 0
- 230 DIM MSGD%(28000):' 音声メッセージ配列定義 プログラム先頭で定義
- 240 LOAD@ FMBDRV$+"\FMP.FMB"
- 250 PLAY "@30T150V4":DATX$=DATE$
- 260 DIM XB1(3,30),XB2(3,30),YB1(3,30),YB2(3,30),BST(3,30)
- 270 DIM ITEM$(20),ITEMC(20),SMOPT(10,3),MESH$(20),IMSH(15)
- 280 DIM MX$(20),MX#(20),DYN$(18),DYN#(18),DRM$(16),GDT#(6,31)
- 290 DIM GDYY(31*12),GDYM$(31*12),GDYE$(31*12)
- 300 INTERVAL 1 :'プログラム先頭
- 310 ON INTERVAL GOSUB *時計表示 :'プログラム先頭
- 320 GOSUB *ボタン座標読み取り
- 325 GOSUB *分析モード読み取り
- 330 GOSUB *メッシュデータ定義
- 340 'CLS:COLOR 7:PRINT int((int(((557-208+1)+7)/8)*(333-125+1)*4+8-1)/8)
- 350 DIM CUTN#(795),ANLS#(4598),SUBW#(664),ANLW#(13065)
- 370 ON ERROR GOTO *ERROR
- 980 '
- 1000 *メインルーチン:'・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
- 1005 GOSUB *表紙表示
- 1010 MESN=18:GOSUB *SNDMSG
- 1015 MESN=1:GOSUB *MESDSP
- 1020 GOSUB *本日の日付
- 1030 SMODC=7:GOSUB *分析モード表示
- 1040 MOUSE 1,320,64,1
- 1100 *メイン選択
- 1110 IF MES2OFF=0 THEN MESN=2:GOSUB *MESDSP
- 1130 SWPASS=0:G=1:GOSUB *マウスボタン選択
- 1150 ON SWNO GOTO *S01,*S02,*S03,*S04,*S05,*S06
- 1160 GOTO 1100:STOP
- 1190 '
- 1200 *S01:'モード変更 --------------------------------------------------
- 1210 MODDEF=-1:GOTO *MODECHG
- 1220 *S02:'モード変更 --------------------------------------------------
- 1230 MODDEF=+1:GOTO *MODECHG
- 1250 *MODECHG
- 1260 G=1:B=SWNO:BST(G,B)=1:GOSUB *ボタンON_OFF表示
- 1265 IF SMODSEL=1 THEN MES2OFF=1:GOTO 1320
- 1270 SMODE=SMODE+MODDEF
- 1280 IF SMODE>MODEN THEN SMODE=1:GOTO 1300
- 1290 IF SMODE<1 THEN SMODE=MODEN:GOTO 1300
- 1300 ANLF=0:SMODC=7:GOSUB *分析モード表示
- 1310 MES2OFF=0
- 1320 G=1:B=SWNO:BST(G,B)=0:GOSUB *ボタンON_OFF表示
- 1330 GOTO *メイン選択
- 1340 '
- 1500 *S03:'モード選択 ---------------------------------------------------
- 1510 G=1:B=SWNO:BST(G,B)=1:GOSUB *ボタンON_OFF表示
- 1520 SMODSEL=1:SMODC=4:GOSUB *分析モード表示
- 1530 'PUT@A(88,90)-(215,172),SUBW#
- 1550 IF SMODE=9 THEN 1610
- 1560 CDTSET=0:GOSUB *分析条件設定
- 1570 IF ANLCAN=0 THEN 1600
- 1575 SMODSEL=0:SMODC=7:GOSUB *分析モード表示
- 1580 MES2OFF=0:GOTO 1625
- 1590 '
- 1600 GOSUB *分析結果画面消去
- 1605 GOSUB *分析条件表示:CDTSET=1
- 1610 MESN=13:GOSUB *MESDSP:MESN=16:GOSUB *SNDMSG
- 1620 MES2OFF=1
- 1625 G=1:B=3:BST(G,B)=0:GOSUB *ボタンON_OFF表示
- 1630 GOTO *メイン選択
- 1690 '
- 1700 *S05:'取消 ---------------------------------------------------------
- 1710 G=1:B=SWNO:BST(G,B)=1:GOSUB *ボタンON_OFF表示
- 1720 IF SMODSEL=1 THEN 1750
- 1730 MESN=14:GOSUB *MESDSP:MESN=12:GOSUB *SNDMSG
- 1740 FOR II=1 TO 5000:NEXT II:GOTO 1760
- 1750 GOSUB *分析条件消去:SMODSEL=0
- 1751 ANLF=0
- 1755 SMODC=7:GOSUB *分析モード表示
- 1760 MES2OFF=0
- 1770 G=1:B=SWNO:BST(G,B)=0:GOSUB *ボタンON_OFF表示
- 1780 GOTO *メイン選択
- 1790 '
- 1920 '
- 2000 *S04:'実行 --------------------------------------------------------
- 2010 G=1:B=4:BST(G,B)=1:GOSUB *ボタンON_OFF表示
- 2020 IF SMODSEL=1 THEN 2100
- 2030 MESN=14:GOSUB *MESDSP:MESN=12:GOSUB *SNDMSG
- 2040 FOR II=1 TO 5000:NEXT II:MES2OFF=0:GOTO 2470
- 2090 '
- 2100 ON SMODE GOSUB *AN01,*AN02,*AN03,*AN04,*AN05, *AN06,*AN07,*AN08,*AN09
- 2110 IF SMODE=3 THEN 2236
- 2120 MESN=14:GOSUB *SNDMSG
- 2236 ANLF=1:SMODC=7:GOSUB *分析モード表示
- 2240 MES2OFF=0
- 2460 SMODSEL=0
- 2470 G=1:B=4:BST(G,B)=0:GOSUB *ボタンON_OFF表示
- 2480 GOTO *メイン選択
- 2490 '
- 8940 '
- 9000 *S06:'終了・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
- 9020 G=1:B=6:BST(G,B)=1:GOSUB *ボタンON_OFF表示
- 9060 '
- 9110 MESN=9:GOSUB *MESDSP:MESN=24:GOSUB *SNDMSG
- 9130 INTERVAL OFF
- 9140 CHAIN "HKMAIN.BAS"
- 9150 STOP:SYSTEM
- 9160 '
- 9900 '-------------------------------------------------------------------
- 9910 ' GENERAL SUB ROUTINE
- 9920 '-------------------------------------------------------------------
- 10000 *CHR1IN:'////////// 1文字入力
- 10010 A$=INKEY$:IF A$="" THEN 10010
- 10020 A=INSTR(C$,A$)
- 10030 IF A=0 THEN MESN=13:GOSUB *SNDMSG:GOTO 10010
- 10040 RETURN
- 10050 '
- 10060 '
- 10070 *MESDSP:'////////// メッセージ表示
- 10080 RESTORE *MESDAT
- 10090 FOR IM=1 TO MESN:READ XM,YM,CM,CB,BM,MES$:NEXT IM
- 10100 LOCATE 0,YM:COLOR CB,CB:PRINT SPACE$(79);
- 10110 LOCATE XM,YM:COLOR CM,CB:PRINT MES$;
- 10120 'IF BM=1 THEN PLAY "L4O4A"
- 10130 RETURN
- 10140 '
- 10200 *MESDAT:'////////// メッセージデータ
- 10205 ' XM, YN, CM, CB, BM
- 10210 DATA 2, 23, 5, 0, 1 :'--- 01
- 10215 DATA " - HK version 4.0 - 分析 [HKANLY.BAS L10]"
- 10220 DATA 2, 23, 7, 0, 0 :'--- 02
- 10225 DATA "分析モードを[▲][▼]ボタンで選んで[SELECT]を押してください。"
- 10230 DATA 2, 23, 7, 0, 0 :'--- 03
- 10235 DATA "●印の分析条件を設定してください。"
- 10240 DATA 2, 23, 4, 0, 1 :'--- 04
- 10245 DATA "★分析条件ファイル読み込み中 !!"
- 10250 DATA 2, 23, 4, 0, 1 :'--- 05
- 10255 DATA "★分析条件ファイル保存中 !!"
- 10260 DATA 2, 23, 6, 0, 1 :'--- 06
- 10265 DATA "この分析モードでは、指定した分析条件は無効です。"
- 10270 DATA 2, 23, 6, 0, 0 :'--- 07
- 10275 DATA "分析開始年月が分析終了年月よりも大きくなっています。 訂正してください。"
- 10280 DATA 2, 23, 6, 0, 0 :'--- 08
- 10285 DATA "分析終了年月をもう少し小さく設定してください。"
- 10290 DATA 2, 23, 5, 0, 1 :'--- 09
- 10295 DATA " ★★★しばらくお待ちください....."
- 10300 DATA 2, 23, 6, 0, 0 :'--- 10
- 10305 DATA "この分析モードでは、指定した分析項目は無効です。分析項目を選択し直して下さい。"
- 10310 DATA 2, 23, 6, 0, 0 :'--- 11
- 10315 DATA "分析項目が指定されていません。 分析項目を選んでください。"
- 10320 DATA 2, 23, 7, 0, 0 :'--- 12
- 10325 DATA "分析条件ファイルを保存しますか? 保存する--[OK] 保存しない--[NG]"
- 10330 DATA 2, 23, 7, 0, 1 :'--- 13
- 10335 DATA "分析条件を確認して[実行]ボタンを押してください。"
- 10340 DATA 2, 23, 6, 0, 1 :'--- 14
- 10345 DATA "分析モードを選んでください。"
- 10350 DATA 2, 23, 6, 0, 1 :'--- 15
- 10355 DATA "分析開始年月の家計簿ファイルがありません。"
- 10360 DATA 2, 23, 6, 0, 1 :'--- 16
- 10365 DATA "分析終了年月の家計簿ファイルがありません。"
- 10370 DATA 2, 23, 4, 0, 1 :'--- 17
- 10375 DATA "★分析実行中!! しばらくお待ちください。"
- 10380 DATA 2, 23, 6, 0, 1 :'--- 18
- 10385 DATA "分析の結果該当するデータが有りませんでした。"
- 10390 DATA 2, 23, 7, 0, 1 :'--- 19
- 10395 DATA "分析終了! [▲前頁][▼次頁]で頁切替え。 [取消]で分析終了。"
- 10400 DATA 2, 23, 4, 0, 1 :'--- 20
- 10405 DATA "★統計演算処理実行中! しばらくお待ちください。"
- 10410 DATA 2, 23, 7, 0, 1 :'--- 21
- 10415 DATA "マウスで内容を見たい日付のグラフ(白い点)をクリックしてください。 終了:[取消]"
- 10990 '
- 11000 *SNDMSG:' SAVE "SNDMSG.SUB",A
- 11005 IF SNDMF=0 THEN RETURN
- 11010 '・・・・・・・・・・・・・・・・・ サウンドメッセージ実行サブルーチン 1989.02.04
- 11020 ' 入力=MESN (メッセージNo.)
- 11030 '
- 11070 IF MESN>36 THEN *RETURN_SNDMSG
- 11080 RESTORE *MSGNAM
- 11090 FOR IMSG=1 TO MESN
- 11100 READ MSGD$
- 11110 NEXT IMSG
- 11120 MSGFN$=SNDDRV$+"\"+MSGD$+"_F.SND"
- 11130 LOAD@ MSGFN$,MSGD%
- 11140 PCMPLAY MSGD%
- 11150 *RETURN_SNDMSG :WAIT SWAIT:RETURN
- 11160 *MSGNAM :'////////// .SND File Name Data
- 11170 DATA "OHA1" :' 1 おはよう
- 11180 DATA "KONN" :' 2 こんにちわ
- 11190 DATA "KONBAN" :' 3 こんばんわ
- 11200 DATA "GOKRO1" :' 4 ごくろうさん
- 11210 DATA "GOKRO2" :' 5 ごくろうさま
- 11220 DATA "OTUKA" :' 6 お疲れさま
- 11230 DATA "OMATA" :' 7 おまたせ
- 11240 DATA "ARIGA2" :' 8 ありがとう
- 11250 DATA "RUNRUN" :' 9 るんるん
- 11260 DATA "DAMEDE" :' 10 だめでしょう
- 11270 DATA "IIDE1" :' 11 いいですか
- 11280 DATA "NANISI" :' 12 なにしてるの
- 11290 DATA "DAMEDA" :' 13 だめだめ
- 11300 DATA "OWARI" :' 14 終わりました
- 11310 DATA "SIBA" :' 15 しばらくお待ち下さい
- 11320 DATA "YOROSI" :' 16 よろしいですか
- 11330 DATA "TYANTO" :' 17 ちゃんとしなさい
- 11340 DATA "ERANDE" :' 18 選んでください
- 11350 DATA "KAKNIN" :' 19 確認して下さい
- 11360 DATA "NYURYO" :' 20 入力してください
- 11370 DATA "IRA" :' 21 いらっしゃいませ
- 11380 DATA "OYASUM" :' 22 おやすみ
- 11390 DATA "ARIGA3" :' 23 ありがとうございました
- 11400 DATA "TYOTO" :' 24 ちょっと待って
- 11410 DATA "DAMEYO" :' 25 駄目よ
- 11420 DATA "YAMETE" :' 26 やめて
- 11430 DATA "TIGAU" :' 27 ちがうよ
- 11440 DATA "PINPON" :' 28 ぴんぽーん
- 11450 DATA "BUU" :' 29 ぶー
- 11460 DATA "MOUII" :' 30 もういいよう
- 11470 DATA "DEKITA" :' 31 できたよー
- 11480 DATA "IIDE2" :' 32 いいですか(2)
- 11490 DATA "YOSI" :' 33 よしなさい
- 11500 DATA "OYOSI" :' 34 およしなさい
- 11510 DATA "YAMENA" :' 35 やめなさい
- 11520 DATA "GOMEN" :' 36 ごめん
- 11530 '
- 12000 '////////// 年月日入力 & 曜日表示
- 12010 '
- 12015 *週分析E
- 12020 DATA "SUN",2,"MON",0,"TUE",0,"WED",0,"THU",0,"FRI",0,"SAT",1
- 12025 GOSUB *WEEKN:RESTORE 12020:FOR IW=0 TO WK:READ WKM$,CW:NEXT IW
- 12030 RETURN
- 12045 *週分析
- 12050 DATA "日",2,"月",0,"火",0,"水",0,"木",0,"金",0,"土",5
- 12060 GOSUB *WEEKN:RESTORE 12050:FOR IW=0 TO WK:READ WKM$,CW:NEXT IW
- 12080 RETURN
- 12090 '
- 12450 *WEEKN :'////////// 週NO.分析
- 12460 U=0 :'・・・・・・・・・・・・・・・・・・・・・・・・ Input; YR MN Output; WK DN
- 12470 IF YR/4-INT(YR/4)=0 THEN U=1
- 12480 DATA 31,28,31,30,31,30,31,31,30,31,30,31
- 12490 DATA 31,29,31,30,31,30,31,31,30,31,30,31
- 12500 IF U=0 THEN RESTORE 12480 ELSE RESTORE 12490
- 12505 IF MN=1 THEN MDN=0:MNDN=31:GOTO 12520
- 12510 MDN=0:FOR IWEKN=1 TO MN-1:READ DN:MDN=MDN+DN:NEXT IWEKN
- 12515 READ MNDN:'当月の日数
- 12520 YDN#=MDN+YR*365+INT((YR+3)/4)+5+DY-1
- 12530 WK=(YDN#/7-INT(YDN#/7))*7
- 12540 RETURN
- 15000 '
- 15010 ' SAVE"TCLOCK.sub" :' 組み込み型 アナログ時計 V1.1
- 15020 ' 1991.05 T.KOMURA
- 15030 '--------------------------------------------------------------------
- 15040 '
- 15220 *時計表示:'///////////////////////////////////
- 15230 XCLK0=572:YCLK0=22:CLKR=16:PI=3.1415!
- 15240 TIMEX$=TIME$:IF DATE$<>DATX$ THEN GOSUB *本日の日付
- 15250 TSC$=MID$(TIMEX$,7,2):SCR=2*PI*(VAL(TSC$)/60)
- 15260 TMN$=MID$(TIMEX$,4,2):MNR=2*PI*(VAL(TMN$)/60)
- 15270 THR$=LEFT$(TIMEX$,2) :HRR=2*PI*((VAL(THR$)*60+VAL(TMN$))/720)
- 15280 GOSUB *短針表示
- 15290 GOSUB *長針表示
- 15300 GOSUB *秒針表示
- 15310 CLOCKINIT=1:DATX$=DATE$
- 15320 RETURN
- 15330 '
- 15340 *短針表示
- 15350 XHD1=XCLK0+(CLKR-8)*SIN(HRR):XHD2=XCLK0
- 15360 YHD1=YCLK0-(CLKR-8)*COS(HRR):YHD2=YCLK0
- 15370 IF CLOCKINIT=0 THEN 15400
- 15380 IF SCR<>0 THEN 15420
- 15390 LINE(XHD1X,YHD1X)-(XHD2X,YHD2X),XOR,6
- 15400 LINE(XHD1 ,YHD1 )-(XHD2 ,YHD2 ),XOR,6
- 15410 XHD1X=XHD1:YHD1X=YHD1:XHD2X=XHD2:YHD2X=YHD2
- 15420 RETURN
- 15430 *長針表示
- 15440 XMD1=XCLK0+(CLKR-2)*SIN(MNR):XMD2=XCLK0
- 15450 YMD1=YCLK0-(CLKR-2)*COS(MNR):YMD2=YCLK0
- 15460 IF CLOCKINIT=0 THEN 15490
- 15470 IF SCR<>0 THEN 15510
- 15480 LINE(XMD1X,YMD1X)-(XMD2X,YMD2X),XOR,7
- 15490 LINE(XMD1 ,YMD1 )-(XMD2 ,YMD2 ),XOR,7
- 15500 XMD1X=XMD1:YMD1X=YMD1:XMD2X=XMD2:YMD2X=YMD2
- 15510 RETURN
- 15520 *秒針表示
- 15530 XSD1=XCLK0+(CLKR)*SIN(SCR):XSD2=XCLK0:'+(CLKR-10)*SIN(SCR)
- 15540 YSD1=YCLK0-(CLKR)*COS(SCR):YSD2=YCLK0:'-(CLKR-10)*COS(SCR)
- 15550 IF CLOCKINIT=0 THEN 15570
- 15560 LINE(XSD1X,YSD1X)-(XSD2X,YSD2X),XOR,4
- 15570 LINE(XSD1 ,YSD1 )-(XSD2 ,YSD2 ),XOR,4
- 15580 XSD1X=XSD1:YSD1X=YSD1:XSD2X=XSD2:YSD2X=YSD2
- 15590 RETURN
- 16000 '
- 19000 '
- 19010 '//////////////////////////////////////////////////////////////
- 19020 *ERROR:' エラー処理サブルーチン V1.10 1990.11.08 T.Komura
- 19030 '
- 19040 '
- 19050 IF ERR=53 THEN *IOERR
- 19060 IF ERR=63 THEN *FILNOF
- 19070 IF ERR=67 THEN *DSKFUL
- 19080 IF ERR=71 THEN *DSKUNF
- 19090 IF ERR=72 THEN *DSKOFF
- 19100 IF ERR=73 THEN *DSKWP
- 19110 ERMES$="エラー行:"+STR$(ERL)+" エラー番号:"+STR$(ERR)+" 発生"
- 19120 GOSUB *ERMSG
- 19130 STOP
- 19140 '////////// エラー処理
- 19150 *IOERR
- 19160 ERMES$="プリンターが準備されていません。 プリンターをセット後、"
- 19170 GOSUB *ERMSG:RESUME
- 19180 *DSKFUL
- 19190 ERMES$="ディスクが満杯です。 交換後、"
- 19200 GOSUB *ERMSG:RESUME
- 19210 *DSKUNF
- 19220 ERMES$="このディスクは使用出来ません。処理を中断します。 "
- 19230 GOSUB *ERMSG:RESUME
- 19240 *DSKOFF
- 19250 ERMES$="ディスク装置が準備されていません。ディスクをセット後、"
- 19260 GOSUB *ERMSG:RESUME
- 19270 *DSKWP
- 19280 ERMES$="ディスクが書き込み禁止になっています。解除後、"
- 19290 GOSUB *ERMSG:RESUME
- 19300 *FILNOF
- 19310 ERMES$="ファイルが見つかりません。ディスクを交換後、"
- 19320 GOSUB *ERMSG:RESUME
- 19330 '
- 19340 *ERMSG:'////////// エラーメッセージ
- 19345 XX=POS(0):YY=CSRLIN
- 19350 LOCATE 2,23:COLOR 2,0
- 19355 PRINT SPACE$(77);
- 19359 LOCATE 2,23:COLOR 2,0
- 19360 PRINT ERMES$;"[実行]キーを押してね!";
- 19370 COLOR 7,0:MESN=19:GOSUB *SNDMSG
- 19380 ERRA$=INKEY$:IF ERRA$="" THEN 19380
- 19390 IF ERRA$<>CHR$(&H0D) THEN 19380
- 19400 LOCATE 3,23:COLOR 6,0
- 19410 PRINT "エラー処理を終わります。";SPACE$(52);
- 19420 LOCATE XX,YY:RETURN
- 19430 '
- 19440 '
- 19450 '
- 20000 '------------------------------------------------------------------
- 20010 ' CUSTOM SUB ROUTINE FOR "HKANLY.BAS"
- 20020 '------------------------------------------------------------------
- 20100 *表紙表示
- 20140 LOAD@ TIFDRV$+"\HKANLY.TIF",(0,0)
- 20145 INTERVAL ON
- 20150 GET@A(88,90)-(215,172),SUBW#
- 20155 GET@A(10,90)-(628,424),ANLW#
- 20160 RETURN
- 20190 '
- 20200 *本日の日付
- 20210 TY$=LEFT$(DATE$,2) :TY=VAL(TY$)
- 20212 IF TY<90 THEN TY=TY+2000 ELSE TY=TY+1900
- 20214 TY$=RIGHT$(STR$(TY),4)
- 20220 TM$=MID$(DATE$,4,2):TM=VAL(TM$)
- 20230 TD$=RIGHT$(DATE$,2):TD=VAL(TD$)
- 20250 YR=TY:MN=TM:DY=TD:GOSUB *週分析:IF CW=0 THEN CW=7
- 20260 TYMD$=TY$+"年"+TM$+"月"+TD$+"日"+" 曜日"
- 20265 COLOR 7,0:LOCATE 46,1:PRINT TYMD$
- 20270 COLOR CW:LOCATE 61,1:PRINT WKM$
- 20280 RETURN
- 20290 '
- 20300 *分析年月表示
- 20310 SRYR$=RIGHT$(STR$(SRYR),4)
- 20315 NBN=4:NBA$=SRYR$:GOSUB *数字漢字変換:KYR$=NBK$
- 20320 SRMN$=RIGHT$(STR$(100+SRMN),2)
- 20325 NBN=2:NBA$=SRMN$:GOSUB *数字漢字変換:KMN$=NBK$
- 20350 DYMD$=KYR$+SPACE$(9)+KMN$
- 20360 COLOR 7,0:LOCATE 39,9+(ANLIN-1)*2:PRINT DYMD$;
- 20380 RETURN
- 20390 '
- 20400 *分析モード表示
- 20410 LOCATE 12,3:COLOR SMODC
- 20420 PRINT SMODE$(SMODE);
- 20430 ANLC$="\ANLC"+RIGHT$(STR$(SMODE+100),2)+".TIF"
- 20440 DRV$=LEFT$(TIFDRV$,2)
- 20445 IF LEN(TIFDRV$)=3 THEN DRV$=LEFT$(TIFDRV$,2):PATH$="":GOTO 20455
- 20450 PATH$=RIGHT$(TIFDRV$,LEN(TIFDRV$)-2)
- 20455 FLN$=DRV$+PATH$+ANLC$
- 20460 IF ANLF=1 THEN 20470
- 20465 LOAD@ FLN$,(88,90)
- 20470 RETURN
- 20480 '
- 20500 *分析結果画面消去
- 20510 FOR II=5 TO 21
- 20520 LOCATE 0,II:COLOR 7:PRINT SPACE$(79);
- 20530 NEXT II
- 20540 PUT@A(10,90)-(628,424),ANLW#
- 20550 RETURN
- 20590 '
- 20600 *年月変更
- 20610 MN=MN+MDEF
- 20620 IF MN<1 THEN MN=12+MN:YR=YR-1
- 20630 IF MN>12 THEN MN=MN-12:YR=YR+1
- 20640 YR=YR+YDEF
- 20650 IF YR<0 THEN YR=10000+YR
- 20660 IF YR>9999 THEN YR=YR-10000
- 20670 MN$=RIGHT$(STR$(100+MN),2)
- 20680 YR$=RIGHT$(STR$(10000+YR),4)
- 20690 RETURN
- 20695 '
- 20700 *分析条件枠表示
- 20705 DEF FONT "システム 12ドット"
- 20710 GET@A(208,125)-(557,333),ANLS#
- 20720 LOAD@ TIFDRV$+"\HKANLS.TIF",(208,125)
- 20722 FOR II=1 TO 15:IF II>3 AND II<8 THEN C=1 ELSE C=0
- 20724 X=318+46*INT((II-1)/3):Y=249+17*((II-1) MOD 3)
- 20726 SYMBOL(X,Y),CFI$(II),.75!,.75!,C
- 20728 NEXT II
- 20730 FOR II=1 TO 3
- 20732 IF SMOPT(SMODE,II)=0 THEN 20738
- 20734 LOCATE 28,9+(II-1)*2:COLOR 3
- 20736 PRINT "●";
- 20738 NEXT II
- 20739 DEF FONT "システム 16ドット"
- 20740 RETURN
- 20750 *分析条件枠消去
- 20760 FOR II=1 TO 5
- 20762 LOCATE 28,9+II-1:PRINT SPACE$(40);
- 20764 NEXT II
- 20770 PUT@A(208,125)-(557,333),ANLS#
- 20785 RETURN
- 20790 '
- 20800 *分析条件読み込み
- 20805 MESN=4:GOSUB *MESDSP
- 20810 GOSUB *ANLSGET
- 20820 SRYR=SR1YR:SRMN=SR1MN:ANLIN=1:GOSUB *分析年月表示
- 20825 YRS=SRYR:MNS=SRMN
- 20830 SRYR=SR2YR:SRMN=SR2MN:ANLIN=2:GOSUB *分析年月表示
- 20835 YRE=SRYR:MNE=SRMN
- 20870 SX8=0:SX8X=SX8:SX$(8)=SPACE$(2):SITM=0
- 20890 RETURN
- 20895 '
- 20900 *分析条件保存
- 20905 MESN=5:GOSUB *MESDSP
- 20910 GOSUB *ANLSPUT
- 20920 RETURN
- 20930 '
- 21000 *分析条件設定
- 21010 GOSUB *分析条件枠表示
- 21020 GOSUB *分析条件読み込み
- 21030 MESN=3:GOSUB *MESDSP:MESN=20:GOSUB *SNDMSG
- 21040 G=2:GOSUB *マウスボタン選択
- 21050 IF SWNO>10 THEN *ANLS項目選択
- 21060 ON SWNO GOTO *SI01,*SI02,*SI03,*SI04,*SI05,*SI06,*SI07,*SI08,*SI09,*SI10
- 21070 '//////////////////////////////////////////////////////////////
- 21080 *SI03:YDEF=+1:MDEF= 0:GOTO 21120
- 21090 *SI04:YDEF=-1:MDEF= 0:GOTO 21120
- 21100 *SI05:YDEF= 0:MDEF=+1:GOTO 21120
- 21110 *SI06:YDEF= 0:MDEF=-1:GOTO 21120
- 21120 G=2:B=SWNO:BST(G,B)=1:GOSUB *ボタンON_OFF表示
- 21130 ANLIN=1:IF SMOPT(SMODE,ANLIN)=0 THEN GOSUB *SELERR:GOTO 21170
- 21140 YR=SR1YR:MN=SR1MN:GOSUB *年月変更:SR1YR=YR:SR1MN=MN
- 21150 SX$(1)=YR$:SX$(2)=MN$:YRS=YR:MNS=MN
- 21160 SRYR=SR1YR:SRMN=SR1MN:GOSUB *分析年月表示
- 21170 G=2:B=SWNO:BST(G,B)=0:GOSUB *ボタンON_OFF表示
- 21180 GOTO 21040
- 21190 *SI07:YDEF=+1:MDEF= 0:GOTO 21230
- 21200 *SI08:YDEF=-1:MDEF= 0:GOTO 21230
- 21210 *SI09:YDEF= 0:MDEF=+1:GOTO 21230
- 21220 *SI10:YDEF= 0:MDEF=-1:GOTO 21230
- 21230 G=2:B=SWNO:BST(G,B)=1:GOSUB *ボタンON_OFF表示
- 21240 ANLIN=2:IF SMOPT(SMODE,ANLIN)=0 THEN GOSUB *SELERR:GOTO 21280
- 21250 YR=SR2YR:MN=SR2MN:GOSUB *年月変更:SR2YR=YR:SR2MN=MN
- 21260 SX$(3)=YR$:SX$(4)=MN$:YRE=YR:MNE=MN
- 21270 SRYR=SR2YR:SRMN=SR2MN:GOSUB *分析年月表示
- 21280 G=2:B=SWNO:BST(G,B)=0:GOSUB *ボタンON_OFF表示
- 21290 GOTO 21040
- 21300 *ANLS項目選択
- 21310 ANLIN=3:IF SMOPT(SMODE,ANLIN)=0 THEN GOSUB *SELERR:GOTO 21370
- 21320 SX8=SWNO:IF SX8X=0 THEN 21340
- 21330 G=2:B=SX8X:BST(G,B)=0:GOSUB *ボタンON_OFF表示
- 21340 G=2:B=SX8 :BST(G,B)=1:GOSUB *ボタンON_OFF表示
- 21350 SX8X=SX8:SITM=0
- 21360 SX$(8)=RIGHT$(STR$(SX8-10),2):SITM=VAL(SX$(8))
- 21370 GOTO 21040
- 21380 *SELERR
- 21390 MESN=6:GOSUB *MESDSP:MESN=13:GOSUB *SNDMSG
- 21400 FOR II=1 TO 5000:NEXT II
- 21410 MESN=3:GOSUB *MESDSP
- 21420 RETURN
- 21430 *SI01'
- 21440 G=2:B=SWNO:BST(G,B)=1:GOSUB *ボタンON_OFF表示
- 21450 GOSUB *分析条件合理性判定
- 21460 IF ANLCDF=0 THEN *SIRETRY
- 21470 GOTO *SIEND
- 21540 *SIRETRY
- 21550 G=2:B=SWNO:BST(G,B)=0:GOSUB *ボタンON_OFF表示
- 21560 GOTO 21040
- 21570 *SI02'
- 21580 G=2:B=SWNO:BST(G,B)=1:GOSUB *ボタンON_OFF表示
- 21590 ANLCAN=1
- 21620 GOTO 21660
- 21630 *SIEND
- 21640 ANLCAN=0
- 21650 GOSUB *分析条件保存
- 21660 GOSUB *分析条件枠消去
- 21670 RETURN
- 21730 '
- 21740 *分析条件表示
- 21742 PUT@A(88,90)-(215,172),SUBW#
- 21745 IF SMOPT(SMODE,3)=0 THEN 21760
- 21748 LINE(88,92)-(215,108),PSET,1,BF
- 21750 SYMBOL(90,94),"分析項目:",.8!,.8!,7,,,&H01+&H04,2
- 21755 SYMBOL(158,94),ITEM$(SITM),1,.8!,3,,,&H01+&H04,2
- 21760 IF SMOPT(SMODE,2)=0 THEN 21780
- 21770 ANLYM$=SX$(1)+"."+SX$(2)+" テ "+SX$(3)+"."+SX$(4):GOTO 21790
- 21780 ANLYM$=SX$(1)+"."+SX$(2)+" テ "+SX$(1)+"."+SX$(2)
- 21790 LOCATE 47,3:COLOR 4:PRINT ANLYM$;
- 21800 RETURN
- 21810 '
- 21820 *分析条件消去
- 21825 PUT@A(88,90)-(215,172),SUBW#
- 21830 LOCATE 47,3:PRINT SPACE$(30)
- 21840 RETURN
- 21850 '
- 21860 *分析年月日更新
- 21870 'IF SMODE=4 THEN ANLCNT=0:RETURN
- 21880 YR=YRM:MN=MNM:YDEF=0:MDEF=+1
- 21890 GOSUB *年月変更
- 21900 IF (YR*12+MN)<=(YRE*12+MNE) THEN 21920
- 21910 ANLCNT=0:RETURN
- 21920 IYM$=YR$+MN$
- 21930 ANLCNT=1
- 21940 RETURN
- 21950 '
- 22000 *AN01:'//////////////////// [月間合計額推移]
- 22010 X0=88:Y0=128:XP=44:YP=12
- 22011 MESH$=CHR$(&H70,&H70,&H70,&H70,&H07,&H07,&H07,&H07)
- 22021 FOR II=1 TO 23 STEP 2
- 22022 LINE(X0,Y0+YP*II)-(X0+XP*11,Y0+YP*(II+1)+1),PSET,0,BF,MESH$
- 22023 NEXT II
- 22024 FOR II=1 TO 10
- 22025 LINE(X0+XP*II,Y0)-(X0+XP*II,Y0+YP*24),PSET,5,,&HAAAA
- 22026 NEXT II
- 22027 LINE(X0,Y0)-(X0+XP*11,Y0),PSET,5
- 22028 LINE(X0,Y0)-(X0,Y0+YP*24),PSET,5
- 22030 SYMBOL(40,116),"年.月",1,.6!,5
- 22035 SYMBOL(578,116),"[\]",1,.6!,5
- 22100 '-------------------- データ読み込み
- 22105 MESN=17:GOSUB *MESDSP:MESN=15:GOSUB *SNDMSG
- 22110 SCN=1:GOSUB *グラフデータ初期化
- 22120 IYM$=YRS$+MNS$:GDN=1
- 22125 GOSUB *ITM変換
- 22130 GOSUB *統計データ読みだし
- 22132 GDYM$=YRM$+"."+MNM$
- 22135 SYMBOL(X0-68,Y0+YP*(GDN-1)+2),GDYM$,1,.6!,7,,,,1
- 22140 IF FIDX=0 THEN 22160
- 22150 GDT#(1,GDN)=MX#(GITM)
- 22155 TGDT#=TGDT#+GDT#(1,GDN)
- 22160 GOSUB *分析年月日更新
- 22170 IF ANLCNT=0 THEN 22200
- 22180 GDN=GDN+1:GOTO 22130
- 22200 '-------------------- グラフ作成
- 22210 GDMAX=GDN
- 22220 GOSUB *スケール検出
- 22230 FOR II=0 TO 10 STEP 2
- 22232 SCAL$=LEFT$(STR$((SCAL#(1)/10)*II)+SPACE$(8),8)
- 22234 SYMBOL(X0+XP*II-6,Y0-10),SCAL$,.6!,.6!,7
- 22236 NEXT II
- 22238 MESH$=MESH$(13)
- 22240 FOR GDN=1 TO GDMAX
- 22250 XG=X0+(GDT#(1,GDN)/SCAL#(1))*XP*10
- 22260 LINE(X0,Y0+YP*GDN-10)-(XG,Y0+YP*GDN-1),PSET,0,BF,MESH$
- 22270 SYMBOL(XG,Y0+YP*GDN-10),STR$(GDT#(1,GDN)),.8!,.6!,6,,,&H02
- 22280 NEXT GDN
- 22290 LINE(216,92)-(364,108),PSET,7,BF
- 22300 SYMBOL(222,94),"総合計:\"+STR$(TGDT#),1,.8!,0,,,&H01
- 22470 GOSUB *画面フラッシュ
- 22480 RETURN
- 22490 '
- 22500 *AN02:'//////////////////// [月間合計額累積]
- 22510 X0=88:Y0=372:XP=20:YP=-24
- 22520 LINE(X0,Y0)-(X0+XP*24,Y0),PSET,5
- 22521 LINE(X0-12,Y0+8)-(X0+XP*24-12,Y0+8),PSET,5
- 22525 LINE(X0,Y0)-(X0,Y0+YP*10),PSET,5
- 22526 LINE(X0-12,Y0+8)-(X0-12,Y0+YP*10+8),PSET,5
- 22530 FOR II=1 TO 24
- 22532 LINE(X0+XP*II,Y0)-(X0+XP*II,Y0+YP*10),PSET,5,,&HCCCC
- 22533 LINE(X0+XP*II,Y0)-(X0+XP*II-12,Y0+8),PSET,5
- 22534 NEXT II
- 22536 FOR II=0 TO 10
- 22538 LINE(X0,Y0+YP*II)-(X0+XP*24,Y0+YP*II),PSET,5,,&HAAAA
- 22539 LINE(X0,Y0+YP*II)-(X0-12,Y0+YP*II+8),PSET,5
- 22540 NEXT II
- 22550 SYMBOL(24,108),"累積額[\]",.8!,.6!,7
- 22555 SYMBOL(40,96),"月額[\]",.8!,.6!,5
- 22560 SYMBOL(576,372),"年.月",.8!,.6!,5
- 22600 '-------------------- データ読み込み
- 22605 MESN=17:GOSUB *MESDSP:MESN=15:GOSUB *SNDMSG
- 22610 SCN=2:GOSUB *グラフデータ初期化
- 22620 IYM$=YRS$+MNS$:GDN=1
- 22625 GOSUB *ITM変換
- 22630 GOSUB *統計データ読みだし
- 22632 GDYM$=YRM$+"."+MNM$
- 22633 XS=X0+XP*(GDN-1)-16:YS=Y0+((GDN-1) MOD 3)*12+10
- 22635 SYMBOL(XS,YS),GDYM$,.6!,.6!,7,,,,1
- 22640 IF FIDX=0 THEN 22660
- 22650 GDT#(1,GDN)=MX#(GITM)
- 22651 GDT#(2,GDN)=GDT#(2,GDN-1)+MX#(GITM)
- 22655 TGDT#=TGDT#+GDT#(1,GDN)
- 22660 GOSUB *分析年月日更新
- 22670 IF ANLCNT=0 THEN 22700
- 22680 GDN=GDN+1:GOTO 22630
- 22700 '-------------------- グラフ作成
- 22710 GDMAX=GDN
- 22720 GOSUB *スケール検出
- 22730 FOR II=0 TO 10 STEP 2
- 22732 SCAL$(1)=RIGHT$(SPACE$(8)+STR$((SCAL#(1)/10)*II),8)
- 22733 SCAL$(2)=RIGHT$(SPACE$(8)+STR$((SCAL#(2)/10)*II),8)
- 22734 SYMBOL(X0-54,Y0-10+YP*II),SCAL$(1),.6!,.6!,5
- 22735 SYMBOL(X0-66,Y0+YP*II),SCAL$(2),.6!,.6!,7
- 22736 NEXT II
- 22738 MESH1$=MESH$(13)
- 22739 MESH2$=MESH$(3)
- 22740 FOR GDN=1 TO GDMAX
- 22750 YG=Y0+(GDT#(1,GDN)/SCAL#(1))*YP*10
- 22755 LINE(X0+XP*GDN-15,Y0)-(X0+XP*GDN-4,YG),PSET,5,BF
- 22760 LINE(X0+XP*GDN-19,Y0+2)-(X0+XP*GDN-7,YG+2),PSET,0,BF,MESH1$
- 22765 YG=Y0+(GDT#(2,GDN)/SCAL#(2))*YP*10
- 22770 X1=X0+XP*(GDN-1)- 6:Y1=YG+4
- 22771 X2=X0+XP*(GDN )- 6:Y2=YG+4
- 22772 X3=X0+XP*(GDN )-12:Y3=YG+8
- 22773 X4=X0+XP*(GDN-1)-12:Y4=YG+8
- 22774 CONNECT(X1,Y1)-(X2,Y2)-(X3,Y3)-(X4,Y4)-(X1,Y1),7,PSET,F,MESH2$
- 22775 LINE(X2,Y2)-(X2,Y0+4),PSET,7
- 22776 LINE(X3,Y3)-(X3,Y0+8),PSET,7
- 22777 LINE(X4,Y4)-(X4,Y0+8),PSET,7
- 22780 NEXT GDN
- 22790 LINE(216,92)-(364,108),PSET,7,BF
- 22900 SYMBOL(222,94),"総合計:\"+STR$(TGDT#),1,.8!,0,,,&H01
- 22970 GOSUB *画面フラッシュ
- 22980 RETURN
- 22990 '
- 23000 *AN03:'//////////////////// [日別項目別変動]
- 23010 X0=52:Y0=262:XP=3:YP=-10:YO=128
- 23011 DATA 100000,100000,100000, 10000, 10000
- 23012 DATA 2000, 10000, 20000, 10000, 10000
- 23013 DATA 10000, 10000, 10000, 10000, 50000
- 23015 RESTORE 23011:FOR II=2 TO SITM:READ SCAL#(1):NEXT II
- 23020 FOR II=0 TO 1:Y0X=Y0+YO*II
- 23022 LINE(X0,Y0X)-(X0+XP*31*6,Y0X),PSET,5
- 23024 LINE(X0,Y0X)-(X0,Y0X+YP*10),PSET,5
- 23030 FOR JJ=1 TO 10
- 23032 LINE(X0,Y0+YO*II+YP*JJ)-(X0+XP*31*6,Y0+YO*II+YP*JJ),PSET,5,,&HAAAA
- 23034 NEXT JJ
- 23040 FOR JJ=0 TO 31*6 STEP 31
- 23041 LINE(X0+XP*JJ,Y0X)-(X0+XP*JJ,Y0X+YP*10),PSET,5
- 23042 LINE(X0+XP*(JJ+10),Y0X)-(X0+XP*(JJ+10),Y0X+YP*10),PSET,5,,&HAAAA
- 23043 LINE(X0+XP*(JJ+20),Y0X)-(X0+XP*(JJ+20),Y0X+YP*10),PSET,5,,&HAAAA
- 23045 NEXT JJ
- 23050 FOR JJ=0 TO 10 STEP 2
- 23052 SCAL$=RIGHT$(SPACE$(8)+STR$((SCAL#(1)/10)*JJ),8)
- 23054 SYMBOL(X0-42,Y0X+YP*JJ-6),SCAL$,.6!,.6!,7
- 23056 NEXT JJ
- 23058 NEXT II
- 23060 LINE(217,92)-(308,108),PSET,7,BF
- 23061 LINE(310,92)-(614,108),PSET,7,BF
- 23062 'SYMBOL(222,94),"\ 00000000 01234567890123456789012345678901",1,.8!,0,,,&H01
- 23063 LINE(88,110)-(614,126),PSET,5,BF
- 23064 LINE(20,92)-(86,126),PSET,7,BF
- 23066 SYMBOL(96,112),"出来事:",.9!,.8!,0,,,&H01,4
- 23067 'SYMBOL(26,94 ),"1992.07",.9!,.8!,0,,,&H01,1
- 23068 'SYMBOL(26,112),"25[wed]",.9!,.8!,0,,,&H01,1
- 23100 '-------------------- データ読み込み
- 23105 MESN=17:GOSUB *MESDSP:MESN=15:GOSUB *SNDMSG
- 23110 FOR II=1 TO 366:GDYY=0:GDYM$="":NEXT II
- 23120 IYM$=YRS$+MNS$:GDN=1
- 23125 GOSUB *ITM変換
- 23130 GOSUB *HKISRC
- 23132 GDYM$=YRM$+"."+MNM$
- 23133 XS=X0+((GDN-1) MOD (31*6))*XP+8:YS=Y0+INT((GDN-1)/(31*6))*YO+4
- 23135 SYMBOL(XS,YS),GDYM$,1,.8!,6,,,&H01,1
- 23140 IF FIDX=0 THEN 23160
- 23141 FOR RDY=1 TO 31
- 23145 TCALF=0:GOSUB *HKDGET
- 23150 GDYY(GDN)=DYN#(GITM)
- 23151 GDYM$(GDN)=YRM$+MNM$+RIGHT$(STR$(100+RDY),2)+DRM$(GITM)
- 23152 GDYE$(GDN)=DEV$
- 23153 GOSUB *AN03グラフ作成
- 23156 GDN=GDN+1
- 23158 NEXT RDY
- 23160 GOSUB *分析年月日更新
- 23170 IF ANLCNT=0 THEN 23200
- 23180 GOTO 23130
- 23200 '-------------------- データ読み取り
- 23202 GOSUB *画面フラッシュ
- 23205 GDN=GDN-1:'TBS=1:GOSUB *AN03グラフ読み取り
- 23210 MESN=21:GOSUB *MESDSP:MESN=18:GOSUB *SNDMSG
- 23220 SWPASS=1:G=1:GOSUB *マウスボタン選択
- 23230 IF SWNO=5 THEN *AN03END
- 23240 IF TBS=0 THEN 23220
- 23242 IF TBS>GDN THEN 23220
- 23244 GOSUB *AN03グラフ読み取り
- 23246 GOTO 23220
- 23250 *AN03グラフ読み取り
- 23251 LINE(217,92)-(308,108),PSET,7,BF
- 23252 LINE(310,92)-(614,108),PSET,7,BF
- 23253 LINE(157,110)-(614,126),PSET,5,BF
- 23254 LINE(20,92)-(86,126),PSET,7,BF
- 23260 YRM$=MID$(GDYM$(TBS),1,4):YR=VAL(YRM$)
- 23261 MNM$=MID$(GDYM$(TBS),5,2):MN=VAL(MNM$)
- 23262 DYM$=MID$(GDYM$(TBS),7,2):DY=VAL(DYM$)
- 23263 RMM$=MID$(GDYM$(TBS),9,32):GOSUB *週分析E
- 23264 SYMBOL(26,96),YRM$+"."+MNM$,.9!,.8!,0,,,&H01,1
- 23265 SYMBOL(26,112),DYM$+"[ ]",.9!,.8!,0,,,&H01,1
- 23266 SYMBOL(50,112),WKM$,.9!,.8!,CW,,,&H01,1
- 23270 SYMBOL(222,94),"\"+STR$(GDYY(TBS)),1,.8!,0,,,&H01,1
- 23271 SYMBOL(316,94),RMM$,1,.8!,0,,,&H02
- 23272 SYMBOL(160,112),GDYE$(TBS),.9!,.8!,0
- 23290 RETURN
- 23300 *AN03グラフ作成
- 23305 SCALOV=0:SCALZR=0
- 23310 XG=X0+((GDN-1) MOD (31*6))*XP
- 23320 IF GDYY(GDN)>SCAL#(1) THEN SCALOV=1:GOTO 23326
- 23322 IF GDYY(GDN)=0 THEN SCALZR=1
- 23325 YG=Y0+INT((GDN-1)/(31*6))*YO+YP*(GDYY(GDN)/SCAL#(1))*10:GOTO 23330
- 23326 YG=Y0+INT((GDN-1)/(31*6))*YO+YP*10
- 23330 IF GDN=1 OR GDN=31*6+1 THEN 23341
- 23340 LINE(XGX+2,YGX)-(XGX+2,YG),PSET,4
- 23341 IF SCALZR=1 THEN 23343
- 23342 LINE(XG-1,YG-1)-(XG+1,YG+1),PSET,7,BF:GOTO 23345
- 23343 LINE(XG-1,YG)-(XG+1,YG),PSET,7,BF:GOTO 23350
- 23345 IF SCALOV=1 THEN LINE(XG+1,YG-2)-(XG-1,YG-1),PSET,2,B
- 23350 XGX=XG:YGX=YG
- 23360 RETURN
- 23400 *AN03END
- 23410 G=1:B=5:BST(G,B)=1:GOSUB *ボタンON_OFF表示
- 23420 G=1:B=5:BST(G,B)=0:GOSUB *ボタンON_OFF表示
- 23480 RETURN
- 23490 '
- 23500 *AN04:'//////////////////// [月間収支推移 ]
- 23510 X0=88:Y0=240:XP=20:YP=-12
- 23520 LINE(X0,Y0)-(X0+XP*26,Y0),PSET,5
- 23525 LINE(X0,Y0-YP*10)-(X0,Y0+YP*10),PSET,5
- 23530 FOR II=1 TO 24
- 23532 LINE(X0+XP*II,Y0-YP*10)-(X0+XP*II,Y0+YP*10),PSET,5,,&HCCCC
- 23534 NEXT II
- 23536 FOR II=-10 TO 10 STEP 1
- 23538 LINE(X0,Y0+YP*II)-(X0+XP*24,Y0+YP*II),PSET,5,,&HAAAA
- 23539 LINE(X0+XP*24.5!,Y0+YP*II)-(X0+XP*26,Y0+YP*II),PSET,5,,&HAAAA
- 23540 NEXT II
- 23550 SYMBOL(576,370),"TOTAL",.8!,.8!,5,,,&H01,1
- 23560 SYMBOL(22,124),"ヒ",1,1,5,,,&H01
- 23561 SYMBOL(24,150),"収",.8!,.8!,5,,,&H01
- 23562 SYMBOL(24,170),"入",.8!,.8!,5,,,&H01
- 23565 SYMBOL(24,300),"支",.8!,.8!,5,,,&H01
- 23566 SYMBOL(24,320),"出",.8!,.8!,5,,,&H01
- 23567 SYMBOL(22,346),"フ",1,1,5,,,&H01
- 23600 '-------------------- データ読み込み
- 23605 MESN=17:GOSUB *MESDSP:MESN=15:GOSUB *SNDMSG
- 23610 SCN=3:GOSUB *グラフデータ初期化
- 23620 IYM$=YRS$+MNS$:GDN=1
- 23630 GOSUB *統計データ読みだし
- 23632 GDYM$=YRM$+"."+MNM$
- 23633 XS=X0+XP*(GDN-1)-16:YS=Y0-YP*10+((GDN-1) MOD 3)*12+10
- 23635 SYMBOL(XS,YS),GDYM$,.6!,.6!,7,,,,1
- 23640 IF FIDX=0 THEN 23660
- 23650 GDT#(1,GDN)=MX#(16)
- 23651 GDT#(2,GDN)=MX#(17)
- 23655 GDT#(3,GDN)=MX#(16)-MX#(17)
- 23656 TGDT#=TGDT#+GDT#(3,GDN)
- 23660 GOSUB *分析年月日更新
- 23670 IF ANLCNT=0 THEN 23700
- 23680 GDN=GDN+1:GOTO 23630
- 23700 '-------------------- グラフ作成
- 23710 GDMAX=GDN
- 23720 GOSUB *スケール検出
- 23725 GOSUB *スケール検出2
- 23730 FOR II=-10 TO 10 STEP 2
- 23732 SCAL$(1)=RIGHT$(SPACE$(8)+STR$((SMAXW#/10)*II),8)
- 23735 SYMBOL(X0-46,Y0+YP*II-3),SCAL$(1),.6!,.6!,7
- 23736 NEXT II
- 23737 MESH1$=MESH$(10)
- 23738 MESH2$=MESH$(14)
- 23739 MESH3$=MESH$(15)
- 23745 FOR GDN=1 TO GDMAX
- 23750 YG1=Y0+(GDT#(1,GDN)/SMAXW#)*YP*10
- 23751 YG2=Y0-(GDT#(2,GDN)/SMAXW#)*YP*10
- 23752 YG3=Y0+(GDT#(3,GDN)/SMAXW#)*YP*10
- 23755 LINE(X0+XP*GDN-15,Y0)-(X0+XP*GDN-4,YG1),PSET,0,BF,MESH1$
- 23756 LINE(X0+XP*GDN-15,Y0)-(X0+XP*GDN-4,YG2),PSET,0,BF,MESH2$
- 23758 LINE(X0+XP*GDN-XP,Y0)-(X0+XP*GDN ,YG3),PSET,7,BF,MESH3$
- 23760 NEXT GDN
- 23770 YG=Y0+(TGDT#/SMAXW#)*YP*10
- 23772 LINE(X0+XP*26-XP-6,Y0)-(X0+XP*26-4,YG),PSET,7,BF,MESH3$
- 23800 LINE(430,96)-(620,112),PSET,7,BF
- 23810 IF TGDT#>=0 THEN 23815
- 23812 TGDT$=RIGHT$(SPACE$(8)+STR$(ABS(TGDT#)),8)+"-":GOTO 23820
- 23815 TGDT$=RIGHT$(SPACE$(8)+STR$(ABS(TGDT#)),8)+"+"
- 23820 SYMBOL(434,98),"収支合計: \"+TGDT$,1,.8!,0,,,&H01,1
- 23970 GOSUB *画面フラッシュ
- 23980 RETURN
- 23990 '
- 24000 *AN05:'//////////////////// [月間日累積推移]
- 24010 X0=88:Y0=392:XP=12:YP=-25
- 24020 LINE(X0,Y0)-(X0+XP*32,Y0),PSET,5
- 24022 LINE(X0,Y0)-(X0,Y0+YP*10),PSET,5
- 24030 FOR II=1 TO 31
- 24031 LINE(X0+XP*II,Y0)-(X0+XP*II,Y0+YP*10),PSET,5,,&HCCCC
- 24032 IF (II MOD 5)<>0 AND II<>1 THEN 24034
- 24033 SYMBOL(X0+XP*II-8,Y0+4),RIGHT$(STR$(100+II),2),1,.8!,6,,,&H01
- 24034 NEXT II
- 24035 FOR II=1 TO 10
- 24036 LINE(X0,Y0+YP*II)-(X0+XP*32,Y0+YP*II),PSET,5,,&HAAAA
- 24037 NEXT II
- 24050 SYMBOL(464,395),"[日]",1,.8!,5,,,&H01
- 24060 SYMBOL(50,119),"[\]",1,.8!,5,,,&H01
- 24100 '-------------------- データ読み込み
- 24105 MESN=17:GOSUB *MESDSP:MESN=15:GOSUB *SNDMSG
- 24110 SCN=6:GOSUB *グラフデータ初期化
- 24120 IYM$=YRS$+MNS$:GDN=1
- 24125 GOSUB *ITM変換
- 24130 GOSUB *HKISRC
- 24132 GOSUB *AN05年月表示
- 24140 IF FIDX=0 THEN 24160
- 24141 FOR RDY=1 TO 31
- 24145 GOSUB *HKDGET
- 24151 GDT#(GDN,RDY)=GDT#(GDN,RDY-1)+DYN#(GITM)
- 24158 NEXT RDY
- 24160 GOSUB *分析年月日更新
- 24170 IF ANLCNT=0 THEN 24200
- 24180 GDN=GDN+1:GOTO 24130
- 24200 '-------------------- グラフ作成
- 24210 GDMAX=GDN
- 24220 GOSUB *スケール検出
- 24225 GOSUB *スケール検出2
- 24230 FOR II=0 TO 10
- 24232 SCAL$(1)=RIGHT$(SPACE$(8)+STR$((SMAXW#/10)*II),8)
- 24235 SYMBOL(X0-46,Y0+YP*II-3),SCAL$(1),.6!,.6!,7
- 24236 NEXT II
- 24240 FOR GDN=1 TO GDMAX
- 24250 FOR RDY=1 TO 31
- 24252 X=X0+XP*RDY:Y=Y0+(GDT#(GDN,RDY)/SMAXW#)*YP*10
- 24260 IF RDY=1 THEN 24264
- 24262 LINE(XM,YM)-(X,Y),PSET,GDN
- 24264 LINE(X-1,Y-1)-(X+1,Y+1),PSET,GDN,BF
- 24266 XM=X:YM=Y
- 24270 NEXT RDY
- 24280 NEXT GDN
- 24285 GOSUB *画面フラッシュ
- 24290 RETURN
- 24295 '
- 24350 *AN05年月表示
- 24355 XS0=534:YS0=142:XSP=112:YSP=16
- 24360 GDYM$=YRM$+"."+MNM$
- 24365 XS=XS0:YS=YS0+(GDN-1)*YSP
- 24370 SYMBOL(XS,YS),GDYM$,1,.8!,7,,,&H01,1
- 24375 LINE(XS-30,YS+4)-(XS- 8,YS+4),PSET,GDN
- 24376 LINE(XS-31,YS+3)-(XS-29,YS+5),PSET,GDN,BF
- 24377 LINE(XS- 9,YS+3)-(XS- 7,YS+5),PSET,GDN,BF
- 24380 RETURN
- 24490 '
- 24500 *AN06:'//////////////////// [項目別比率分析]
- 24510 X0=18:Y0=96:XP=90:YP=16
- 24520 LOAD@ TIFDRV$+"\HKAN06.TIF",(X0-4,Y0-4)
- 24522 FOR II=1 TO 15:X=38
- 24523 IF II<4 THEN Y=114+16*(II-1):GOTO 24526
- 24524 Y=114+16*II
- 24526 SYMBOL(X,Y),CFI$(II),.8!,.8!,0,,,,2
- 24528 NEXT II
- 24570 GOSUB *AN06項目表示
- 24600 '-------------------- データ読み込み
- 24605 MESN=17:GOSUB *MESDSP:MESN=15:GOSUB *SNDMSG
- 24610 SCN=1:GOSUB *グラフデータ初期化
- 24620 IYM$=YRS$+MNS$
- 24630 GOSUB *統計データ読みだし
- 24632 GDYM$=YRM$+"."+MNM$
- 24633 LOCATE 48,23:COLOR 4
- 24635 PRINT "Access File:";GDYM$;
- 24640 IF FIDX=0 THEN 24660
- 24650 FOR GDN=1 TO 18
- 24651 GDT#(1,GDN)=GDT#(1,GDN)+MX#(GDN)
- 24655 NEXT GDN
- 24660 GOSUB *分析年月日更新
- 24670 IF ANLCNT=0 THEN 24700
- 24680 GOTO 24630
- 24700 '-------------------- グラフ作成
- 24710 XC0=465:YC0=297:RC=120:XG0=345:YG0=128:XGP=240:YGP=32
- 24720 FOR GDN=1 TO 15
- 24722 IF GDN>3 THEN TGDT#=GDT#(1,17) ELSE TGDT#=GDT#(1,16)
- 24724 IF GDN>3 THEN YS=Y0+YP*(GDN+1) ELSE YS=Y0+YP*GDN
- 24726 GDTC=0:GDAC=&H00:GOSUB *AN06数値表示
- 24728 NEXT GDN
- 24730 TGDT#=GDT#(1,16):YS=Y0+YP*4:GDN=16
- 24731 GDTC=1:GDAC=&H01:GOSUB *AN06数値表示
- 24732 TGDT#=GDT#(1,17):YS=Y0+YP*18:GDN=17
- 24733 GDTC=1:GDAC=&H01:GOSUB *AN06数値表示
- 24734 TGDT#=GDT#(1,17):YS=Y0+YP*17:GDN=18
- 24735 GDTC=1:GDAC=&H01:GOSUB *AN06数値表示
- 24736 GDT#(1,19)=GDT#(1,16)-GDT#(1,17)
- 24737 GDT1$="\"+RIGHT$(SPACE$(9)+STR$(GDT#(1,19)),9)
- 24738 YS=Y0+YP*(19)
- 24739 SYMBOL(X0+XP*1+8,YS+3),GDT1$,1,.8!,0,,,&H01
- 24740 XM=XG0
- 24741 LINE(XG0+6,YG0+6)-(XG0+XGP+6,YG0+YGP+6),PSET,0,BF,MESH$(18)
- 24742 LINE(XG0,YG0)-(XG0+XGP,YG0+YGP),PSET,7,B
- 24743 FOR GDN=1 TO 3:IF GDT#(1,16)=0 THEN 24747
- 24744 XG=XM+GDT#(1,GDN)/GDT#(1,16)*XGP
- 24746 LINE(XM,YG0)-(XG,YG0+YGP),PSET,0,BF,MESH$(IMSH(GDN))
- 24747 XM=XG
- 24748 NEXT GDN
- 24750 LINE(XG0,YG0-2)-(XG0+XGP,YG0-2),PSET,5
- 24751 LINE(XG0,YG0-5)-(XG0,YG0-2),PSET,5
- 24752 LINE(XG0+XGP*.5!,YG0-5)-(XG0+XGP*.5!,YG0-2),PSET,5
- 24753 LINE(XG0+XGP,YG0-5)-(XG0+XGP,YG0-2),PSET,5
- 24754 SCAL$="0"+SPACE$(18)+"50"+SPACE$(17)+"100 [%]"
- 24755 SYMBOL(XG0-3,YG0-15),SCAL$,.8!,.6!,5
- 24758 SYMBOL(430,YG0-33),"収入比率",1,1,7,,,&H01+&H02
- 24760 RGM=.75!
- 24761 CIRCLE(XC0+6,YC0+6),RC,0,,,,F,PSET,MESH$(18)
- 24762 CIRCLE(XC0,YC0),RC,7
- 24763 FOR GDN=4 TO 15
- 24764 IF GDT#(1,GDN)=0 OR GDT#(1,17)=0 THEN 24769
- 24765 RGX=RGM+GDT#(1,GDN)/GDT#(1,17)
- 24766 IF RGX>=1 THEN RGX=RGX-1
- 24768 CIRCLE(XC0,YC0),RC,0,,RGM,RGX,F,PSET,MESH$(IMSH(GDN))
- 24769 RGM=RGX
- 24770 NEXT GDN
- 24775 CIRCLE(XC0,YC0),40,0,,,,F,PSET,7
- 24778 SYMBOL(430,289),"支出比率",1,1,0,,,&H01+&H02
- 24830 GOSUB *画面フラッシュ
- 24840 RETURN
- 24845 '
- 24850 *AN06項目表示
- 24852 DATA 1,5,7,2,1,7,6,3,4,5,8,9,10,11,12
- 24855 RESTORE 24852
- 24860 FOR II=1 TO 15:READ IMSH(II)
- 24880 NEXT II
- 24890 RETURN
- 24900 *AN06数値表示
- 24902 GDT1$="\ "+RIGHT$(SPACE$(8)+STR$(GDT#(1,GDN)),8)
- 24903 IF TGDT#=0 THEN GDT2$="計算不能":GOTO 24916
- 24904 TGDP#=GDT#(1,GDN)/TGDT#
- 24906 GOSUB *小数点表示変換
- 24916 SYMBOL(X0+XP*1+8,YS+3),GDT1$,1,.8!,GDTC,,,GDAC
- 24918 SYMBOL(X0+XP*2+10,YS+3),GDT2$,1,.8!,GDTC,,,GDAC
- 24920 RETURN
- 24990 '
- 25000 *AN07:'//////////////////// [エンゲル係数推移 ]
- 25010 X0=18:Y0=96:XP=72:YP=16
- 25020 LINE(X0-4,Y0-4)-(X0+XP*6+4,Y0+YP*20+4),PSET,7,BF
- 25022 LINE(X0,Y0)-(X0+XP*6,Y0+YP*20),PSET,0,B
- 25023 LINE(X0-1,Y0-1)-(X0+XP*6+1,Y0+YP*20+1),PSET,0,B
- 25030 FOR II=1 TO 19:LINE(X0,Y0+YP*II)-(X0+XP*6,Y0+YP*II),PSET,0:NEXT II
- 25031 PAINT (X0+1,Y0+1),MESH$(5),0
- 25032 PAINT (X0+1,Y0+YP*19+1),MESH$(11),0
- 25040 FOR II=1 TO 5:LINE(X0+XP*II,Y0)-(X0+XP*II,Y0+YP*20),PSET,0:NEXT II
- 25043 DATA " 年.月","支出計[A]","基支出[B]","食 費[C]"," B/A"," C/A"
- 25044 RESTORE 25043:FOR II=0 TO 5 :READ ITM$
- 25045 SYMBOL(X0+XP*II+4,Y0+2),ITM$,.8!,.8!,0,,,&H01,1
- 25046 NEXT II
- 25047 SYMBOL(36,402),"合 計",.8!,.8!,0,,,&H01,1
- 25048 LINE(X0+XP*5-24,Y0)-(X0+XP*5,Y0+YP),PSET,0,BF,MESH$(9)
- 25049 LINE(X0+XP*6-24,Y0)-(X0+XP*6,Y0+YP),PSET,0,BF,MESH$(14)
- 25050 XG0=462:YG0=112:XGP=16:YGP=16
- 25052 LINE(XG0,YG0)-(XG0+XGP*10,YG0),PSET,5
- 25053 LINE(XG0,YG0)-(XG0,YG0+YGP*19+4),PSET,5
- 25054 LINE(XG0,YG0+YGP*18)-(XG0+XGP*10,YG0+YGP*19+4),PSET,5,BF
- 25060 FOR II=1 TO 10
- 25061 LINE(XG0+XGP*II,YG0)-(XG0+XGP*II,YG0+YGP*19+4),PSET,5,,&HAAAA
- 25062 NEXT II
- 25063 FOR II=1 TO 19
- 25064 LINE(XG0,YG0+YGP*II)-(XG0+XGP*10,YG0+YGP*II),PSET,5,,&HCCCC
- 25065 NEXT II
- 25066 SYMBOL(460,100),"0 50 100",.8!,.6!,5
- 25100 '-------------------- データ読み込み
- 25105 MESN=17:GOSUB *MESDSP:MESN=15:GOSUB *SNDMSG
- 25110 SCN=3:GOSUB *グラフデータ初期化
- 25115 FOR II=1 TO 3:TGDT#(II)=0:NEXT II
- 25120 IYM$=YRS$+MNS$:GDN=1
- 25130 GOSUB *統計データ読みだし
- 25132 GDYM$=YRM$+"."+MNM$
- 25133 XS=X0+4:YS=Y0+YP*GDN+2
- 25135 SYMBOL(XS,YS),GDYM$,1,.8!,0,,,&H01,1
- 25140 IF FIDX=0 THEN 25160
- 25150 GDT#(1,GDN)=MX#(17):GDT#(1,19)=GDT#(1,19)+MX#(17):'92.10.11
- 25151 GDT#(2,GDN)=MX#(18):GDT#(2,19)=GDT#(2,19)+MX#(18)
- 25155 GDT#(3,GDN)=MX#(4) :GDT#(3,19)=GDT#(3,19)+MX#(4)
- 25160 GOSUB *分析年月日更新
- 25170 IF ANLCNT=0 THEN 25200
- 25180 GDN=GDN+1:GOTO 25130
- 25200 '-------------------- グラフ作成
- 25210 GDMAX=GDN
- 25220 FOR GDN=1 TO GDMAX
- 25230 GOSUB *AN07グラフ作成
- 25240 NEXT GDN
- 25250 GDN=19:GOSUB *AN07グラフ作成
- 25260 GOSUB *画面フラッシュ
- 25270 RETURN
- 25280 '
- 25300 *AN07グラフ作成
- 25312 GDT$(1)="\"+RIGHT$(SPACE$(8)+STR$(GDT#(1,GDN)),8)
- 25314 GDT$(2)="\"+RIGHT$(SPACE$(8)+STR$(GDT#(2,GDN)),8)
- 25316 GDT$(3)="\"+RIGHT$(SPACE$(8)+STR$(GDT#(3,GDN)),8)
- 25320 IF GDT#(1,GDN)=0 THEN GDT$(4)="計算不能":GOTO 25326
- 25322 TGDP#=GDT#(2,GDN)/GDT#(1,GDN):X1OV=0
- 25323 IF TGDP#<=1 THEN X1=XG0+TGDP#*XGP*10 ELSE X1=XG0+XGP*10:X1OV=1
- 25324 GOSUB *小数点表示変換:GDT$(4)=GDT2$
- 25326 IF GDT#(1,GDN)=0 THEN GDT$(5)="計算不能":GOTO 25340
- 25328 TGDP#=GDT#(3,GDN)/GDT#(1,GDN):X2OV=0
- 25329 IF TGDP#<=1 THEN X2=XG0+TGDP#*XGP*10 ELSE X2=XG0+XGP*10:X2OV=1
- 25330 GOSUB *小数点表示変換:GDT$(5)=GDT2$
- 25340 FOR II=1 TO 5
- 25342 SYMBOL(X0+XP*II+4,Y0+YP*GDN+2),GDT$(II),.9!,.8!,0
- 25344 NEXT II
- 25345 IF GDT$(4)="計算不能" THEN 25360
- 25350 Y=YG0+YGP*(GDN-1)
- 25352 LINE(XG0,Y+2)-(X1,Y+10),PSET,0,BF,MESH$(9)
- 25353 IF X1OV=1 THEN LINE(X1,Y+2)-(X1-1,Y+10),PSET,2,BF
- 25354 LINE(XG0,Y+6)-(X2,Y+14),PSET,0,BF,MESH$(14)
- 25355 IF X2OV=1 THEN LINE(X2,Y+6)-(X2-1,Y+14),PSET,2,BF
- 25360 RETURN
- 25370 '
- 25490 '
- 25500 '*AN08:'//////////////////// [年別動向比較 ]
- 25990 '
- 26000 *AN08:'//////////////////// [月間レポート印刷 ]
- 26010 X0=14:Y0=92:YP=16
- 26020 LINE(X0,Y0)-(X0+608,Y0+YP*21-5),PSET,7,BF
- 26022 FOR II=0 TO 20
- 26024 CIRCLE(X0+8,Y0+YP*II+8),4,0,,,,F
- 26026 CIRCLE(X0+600,Y0+YP*II+8),4,0,,,,F
- 26028 NEXT II
- 26100 '-------------------- データ読み込み
- 26105 MESN=17:GOSUB *MESDSP:MESN=15:GOSUB *SNDMSG
- 26120 IYM$=YRS$+MNS$:LOCATE 0,5:COLOR 0:CR$=CHR$(&H0D,&H0A)
- 26125 SCN=2:GOSUB *グラフデータ初期化
- 26130 GOSUB *HKISRC
- 26132 GDYM$=YRM$+"."+MNM$
- 26135 PR1$="月間家計簿リスト 《"+YRM$+"年"+MNM$+"月》"
- 26136 PR2$="家計簿System Ver.4.0 "+DATE$+" "+TIME$
- 26140 COLOR 0:PRINT SPACE$(4)+PR1$+SPACE$(2)+PR2$:PRINT
- 26142 GOSUB *LAJ2:LPRINT PR1$+SPACE$(6)+PR2$+CR$
- 26148 '
- 26150 PR$="【出来事】"
- 26151 COLOR 0:PRINT SPACE$(4)+PR$+STRING$(60,"-"):PRINT
- 26152 GOSUB *LAJ2:LPRINT PR$+STRING$(63,"-")+CR$
- 26155 FOR RDY=1 TO 31
- 26160 GOSUB *HKDGET:GOSUB *AN08分析
- 26165 YR=YRM:MN=MNM:DY=RDY:GOSUB *週分析
- 26166 IF RDY>MNDN THEN PRINT:LPRINT:GOTO 26190
- 26170 PR$=RIGHT$(STR$(100+RDY),2)+"("+WKM$+") "+DEV$
- 26180 PRINT SPACE$(4)+PR$:GOSUB *LAJ:LPRINT PR$
- 26190 NEXT RDY
- 26198 '
- 26200 PRINT:LPRINT
- 26210 PR$="【収 入】"
- 26211 COLOR 0:PRINT SPACE$(4)+PR$+STRING$(60,"-"):PRINT
- 26212 GOSUB *LAJ2:LPRINT PR$+STRING$(63,"-")+CR$
- 26220 GOSUB *統計データ読みだし
- 26230 PR$=" 項目 合計金額 1日平均 最高額 比 率 日数"
- 26231 PRX$=" 項目 合計金額 1日平均 最高額 比 率 日数"
- 26232 COLOR 0:PRINT SPACE$(4)+PRX$
- 26234 GOSUB *LAJ2:LPRINT PR$
- 26240 FOR GDN=1 TO 3
- 26242 GOSUB *AN08項目印刷
- 26244 NEXT GDN:PRINT:LPRINT
- 26246 PR1$=RIGHT$(SPACE$(8)+STR$(MX#(16)),8)
- 26248 PR2#=INT(MX#(16)/MNDN):PR2$=RIGHT$(SPACE$(8)+STR$(PR2#),8)
- 26250 PR$="合 計"+" "+PR1$+" "+PR2$
- 26252 COLOR 0:PRINT SPACE$(4)+PR$
- 26254 GOSUB *LAJ2:LPRINT PR$
- 26258 '
- 26260 PRINT:LPRINT
- 26270 PR$="【支 出】"
- 26271 COLOR 0:PRINT SPACE$(4)+PR$+STRING$(60,"-"):PRINT
- 26272 GOSUB *LAJ2:LPRINT PR$+STRING$(63,"-")+CR$
- 26280 PR$=" 項目 合計金額 1日平均 最高額 比 率 日数"
- 26281 PRX$=" 項目 合計金額 1日平均 最高額 比 率 日数"
- 26282 COLOR 0:PRINT SPACE$(4)+PRX$
- 26284 GOSUB *LAJ2:LPRINT PR$
- 26290 FOR GDN=4 TO 15
- 26292 GOSUB *AN08項目印刷
- 26294 NEXT GDN:PRINT:LPRINT
- 26300 GDN=18:ITEMX$=ITEM$(18+1):ITEM$(18+1)="基支出"
- 26302 GOSUB *AN08項目印刷
- 26304 ITEM$(18+1)=ITEMX$
- 26310 PR1$=RIGHT$(SPACE$(8)+STR$(MX#(17)),8)
- 26312 PR2#=INT(MX#(17)/MNDN):PR2$=RIGHT$(SPACE$(8)+STR$(PR2#),8)
- 26314 PR$="合 計"+" "+PR1$+" "+PR2$
- 26316 COLOR 0:PRINT SPACE$(4)+PR$
- 26318 GOSUB *LAJ2:LPRINT PR$
- 26320 '
- 26330 FOR II=5 TO 22:COLOR 0:PRINT SPACE$(78);:NEXT II
- 26340 SYMBOL(268,222),"印刷終了",1,1,0,,,&H01+&H02,2
- 26350 GOSUB *画面フラッシュ
- 26360 RETURN
- 26380 '
- 26400 *AN08分析
- 26410 FOR GDN=1 TO 18
- 26412 IF DYN#(GDN)<>0 THEN GDT#(2,GDN)=GDT#(2,GDN)+1
- 26414 IF DYN#(GDN)>GDT#(1,GDN) THEN GDT#(1,GDN)=DYN#(GDN)
- 26416 NEXT GDN
- 26420 RETURN
- 26430 *AN08項目印刷
- 26432 PR1$=RIGHT$(SPACE$(8)+STR$(MX#(GDN)),8)
- 26434 PR2#=INT(MX#(GDN)/MNDN):PR2$=RIGHT$(SPACE$(8)+STR$(PR2#),8)
- 26436 PR3$=RIGHT$(SPACE$(8)+STR$(GDT#(1,GDN)),8)
- 26438 TGDP#=MX#(GDN)/MX#(16):GOSUB *小数点表示変換:PR4$=GDT2$
- 26440 PR5$=RIGHT$(STR$(GDT#(2,GDN)),2)
- 26442 PR$=ITEM$(GDN+1)+" "+PR1$+" "+PR2$+" "+PR3$+" "+PR4$+" "+PR5$
- 26444 COLOR 0:PRINT SPACE$(4)+PR$
- 26446 GOSUB *LAJ2:LPRINT PR$
- 26448 RETURN
- 26490 '
- 26500 *AN09:'//////////////////// [総計演算処理 ]
- 26505 GOSUB *分析結果画面消去
- 26510 MESN=20:GOSUB *MESDSP:MESN=15:GOSUB *SNDMSG
- 26520 GOSUB *HKIOPN:CLOSE
- 26530 RI=1 :GOSUB *HKIGET:SX$(1)=YRM$:SX$(2)=MNM$
- 26540 RI=IR:GOSUB *HKIGET:SX$(3)=YRM$:SX$(4)=MNM$
- 26550 GOSUB *分析条件表示
- 26590 LOCATE 0,5
- 26600 FOR LOOP=1 TO IR
- 26610 RI=LOOP:GOSUB *HKIGET
- 26620 COLOR 7
- 26630 PRINT " ";YRM$;"年";MNM$;"月 家計簿ファイル --- ";
- 26650 IF RIGHT$(IMAK$,1)<>" " THEN 26710
- 26660 COLOR 6:PRINT "処理中 !! ";
- 26670 GOSUB *HKTCAL
- 26680 RMN=MNM:GOSUB *HKTPUT
- 26685 MID$(IMAK$,32,1)="*":GOSUB *HKIPUT
- 26690 LOCATE POS(0)-10,CSRLIN:COLOR 4:PRINT "処理終了 "
- 26700 GOTO 26720
- 26710 PRINT "処理済 "
- 26720 NEXT LOOP
- 26730 GOSUB *分析結果画面消去
- 26980 RETURN
- 26990 '
- 27000 *AN10:'//////////////////// [
- 27500 *AN11:'//////////////////// [
- 28000 *AN12:'//////////////////// [
- 28500 *AN13:'//////////////////// [
- 29000 *AN14:'//////////////////// [
- 29500 *AN15:'//////////////////// [
- 29990 '
- 30000 *分析条件合理性判定
- 30020 YRS$=RIGHT$(STR$(10000+YRS),4)
- 30030 MNS$=RIGHT$(STR$(100+MNS),2):IYM$=YRS$+MNS$:GOSUB *HKISRC
- 30040 IF FIDX=0 THEN MESN=15:GOSUB *VALERR :GOTO 30160:'NG
- 30050 IF SMOPT(SMODE,2)=0 THEN 30110:'?
- 30060 YRE$=RIGHT$(STR$(10000+YRE),4)
- 30070 MNE$=RIGHT$(STR$(100+MNE),2):IYM$=YRE$+MNE$:GOSUB *HKISRC
- 30080 IF FIDX=0 THEN MESN=16:GOSUB *VALERR :GOTO 30160:'NG
- 30090 IF (YRS*12+MNS)<=(YRE*12+MNE) THEN 30102:'?
- 30100 MESN=7 :GOSUB *VALERR :GOTO 30160:'NG
- 30102 IF (YRE*12+MNE)-(YRS*12+MNS)<=SMOPT(SMODE,2)-1 THEN 30110:'?
- 30103 ASMES$="★★分析期間範囲:"+STR$(SMOPT(SMODE,2))+"か月以内"
- 30104 MESN=8 :GOSUB *VALERR:GOTO 30160:'NG
- 30110 IF SMOPT(SMODE,3)=0 THEN 30150:'OK
- 30120 IF SITM=1 THEN MESN=10:GOSUB *VALERR :GOTO 30160:'NG
- 30121 IF SITM=20 THEN MESN=10:GOSUB *VALERR :GOTO 30160:'NG
- 30125 IF SITM=0 THEN MESN=11:GOSUB *VALERR :GOTO 30160:'NG
- 30130 IF SMOPT(SMODE,3)=1 THEN 30150:'OK
- 30140 IF SITM>16 THEN MESN=10:GOSUB *VALERR :GOTO 30160:'NG
- 30150 ANLCDF=1:RETURN:'Good !!
- 30160 ANLCDF=0:RETURN:'No Good!
- 30170 *VALERR
- 30175 GOSUB *MESDSP:MESN=25:GOSUB *SNDMSG
- 30176 LOCATE 50,23:COLOR 7:PRINT ASMES$;
- 30180 FOR II=1 TO 10000:NEXT II
- 30185 MESN=3:GOSUB *MESDSP:ASMES$=""
- 30190 RETURN
- 30195 '
- 30200 *スケール検出
- 30210 FOR II=1 TO SCN:SMAX#(II)=0:NEXT II
- 30220 FOR II=1 TO SCN:FOR JJ=1 TO 31
- 30230 IF ABS(GDT#(II,JJ))>SMAX#(II) THEN SMAX#(II)=ABS(GDT#(II,JJ))
- 30240 NEXT JJ:NEXT II
- 30250 DATA 1000, 1500, 2000, 2500, 5000, 7500
- 30260 DATA 10000, 15000, 20000, 25000, 50000, 75000
- 30270 DATA 100000, 150000, 200000, 250000, 500000, 750000
- 30280 DATA 1000000, 1500000, 2000000, 2500000, 5000000, 7500000
- 30290 DATA 10000000,15000000,20000000,25000000,50000000,75000000
- 30300 FOR II=1 TO SCN
- 30305 RESTORE 30250
- 30310 FOR JJ=1 TO 30:READ SCAL#(II)
- 30320 IF SCAL#(II)>SMAX#(II) THEN JJ=31:GOTO 30330
- 30330 NEXT JJ:NEXT II
- 30340 RETURN
- 30395 '
- 30400 *グラフデータ初期化
- 30410 FOR II=1 TO SCN:FOR JJ=0 TO 31
- 30420 GDT#(II,JJ)=0
- 30430 NEXT JJ:NEXT II:TGDT#=0
- 30440 RETURN
- 30450 *ITM変換
- 30460 GITM=SITM-1
- 30470 IF SITM=19 THEN GITM=17
- 30480 IF SITM=18 THEN GITM=18
- 30490 RETURN
- 30495 '
- 30500 *統計データ読みだし
- 30510 GOSUB *HKISRC
- 30520 IF FIDX=0 THEN 30580
- 30530 IF RIGHT$(IMAK$,1)<>" " THEN 30570
- 30540 GOSUB *HKTCAL
- 30550 RMN=MNM:GOSUB *HKTPUT
- 30560 MID$(IMAK$,32,1)="*":GOSUB *HKIPUT
- 30570 RMN=MNM:GOSUB *HKTGET
- 30580 RETURN
- 30590 '
- 30600 *スケール検出2
- 30610 SMAXW#=0
- 30620 FOR II=1 TO SCN
- 30630 IF SCAL#(II)<SMAXW# THEN 30650
- 30640 SMAXN=II:SMAXW#=SCAL#(II)
- 30650 NEXT II
- 30660 RETURN
- 30670 '
- 30700 *シート選択判定
- 30710 X0=52:Y0=262:XP=3:YP=-10:YO=128
- 30720 IF X_M<X0-1 OR X_M>X0+XP*31*6-1 THEN 30770
- 30730 IF Y_M<Y0+YP*10 OR Y_M>Y0+YO THEN 30770
- 30735 IF Y_M>Y0 AND Y_M<Y0+YO+YP*10 THEN 30770
- 30740 IF Y_M>Y0 THEN YOFF=1 ELSE YOFF=0
- 30750 TBS=INT((X_M-(X0-1))/XP)+1+YOFF*31*6
- 30760 PLAY "O6L16EC":RETURN
- 30770 TBS=0:PLAY "O7L16CE":RETURN
- 30780 '
- 30800 *画面フラッシュ
- 30810 FOR II=1 TO 5
- 30820 PALETTE 13,[255,160,200]
- 30825 ' PALETTE 8,[160,240,250]
- 30830 FOR JJ=1 TO 500:NEXT JJ
- 30840 PALETTE 13,[160,160,200]
- 30845 ' PALETTE 8,[ 64, 64, 64]
- 30850 FOR JJ=1 TO 300:NEXT JJ
- 30860 NEXT II
- 30870 RETURN
- 30880 '
- 30900 *小数点表示変換
- 30910 GDT21=INT(TGDP#*100)
- 30920 GDT22$=RIGHT$(STR$(INT(10000+(TGDP#*100-GDT21)*1000)),3)
- 30930 GDT21$=STR$(GDT21)+"."
- 30940 GDT2$=RIGHT$(SPACE$(5)+GDT21$+GDT22$+" %",9)
- 30950 RETURN
- 30960 '
- 31000 *LAJ :'////////// 漢字文字ピッチ縮小
- 31010 LPRINT SPACE$(3)+CHR$(&H1C);"$";CHR$(&H22,&H76);
- 31020 RETURN
- 31040 *LAJ2 :'////////// 漢字文字ピッチ縮小2
- 31050 LPRINT SPACE$(3)+CHR$(&H1C);"$";CHR$(&H23,&H72);
- 31060 RETURN
- 31070 '
- 36000 *メッシュデータ定義
- 36005 '//////// [1]青
- 36010 MESH$(1)=CHR$(&H99,&H99,&H99,&H99)
- 36015 '//////// [2]赤
- 36020 MESH$(2)=CHR$(&HAA,&HAA,&HAA,&HAA)
- 36025 '//////// [3]ピンク
- 36030 MESH$(3)=CHR$(&HBB,&HBB,&HBB,&HBB)
- 36035 '//////// [4]緑
- 36040 MESH$(4)=CHR$(&HCC,&HCC,&HCC,&HCC)
- 36045 '//////// [5]青グレー
- 36050 MESH$(5)=CHR$(&HDD,&HDD,&HDD,&HDD)
- 36055 '//////// [6]黄色
- 36060 MESH$(6)=CHR$(&HEE,&HEE,&HEE,&HEE)
- 36065 '//////// [7]うす青
- 36070 MESH$(7)=CHR$(&H9F,&H9F,&H9F,&H9F,&HF9,&HF9,&HF9,&HF9)
- 36075 '//////// [8]うす赤
- 36080 MESH$(8)=CHR$(&HAF,&HAF,&HAF,&HAF,&HFA,&HFA,&HFA,&HFA)
- 36085 '//////// [9]うすピンク
- 36090 MESH$(9)=CHR$(&HBF,&HBF,&HBF,&HBF,&HFB,&HFB,&HFB,&HFB)
- 36095 '//////// [10]うす緑
- 36100 MESH$(10)=CHR$(&HCF,&HCF,&HCF,&HCF,&HFC,&HFC,&HFC,&HFC)
- 36105 '//////// [11]うす青グレー
- 36110 MESH$(11)=CHR$(&HDF,&HDF,&HDF,&HDF,&HFD,&HFD,&HFD,&HFD)
- 36115 '//////// [12]うす黄色
- 36120 MESH$(12)=CHR$(&HEF,&HEF,&HEF,&HEF,&HFE,&HFE,&HFE,&HFE)
- 36125 '//////// [13]オレンジ
- 36130 MESH$(13)=CHR$(&HAE,&HAE,&HAE,&HAE,&HEA,&HEA,&HEA,&HEA)
- 36135 '//////// [14]赤紫
- 36140 MESH$(14)=CHR$(&HAB,&HAB,&HAB,&HAB,&HBA,&HBA,&HBA,&HBA)
- 36145 '//////// [15]しろ斜線青
- 36150 MESH$(15)=CHR$(&HF9,&H99,&HF9,&H99,&H99,&H9F,&H99,&H9F,&H99,&HF9,&H99,&HF9,&H9F,&H99,&H9F,&H99)
- 36155 '//////// [16]しろグレー
- 36160 MESH$(16)=CHR$(&H77,&H77,&H77,&H77)
- 36165 '//////// [17]明るいしろグレー
- 36170 MESH$(17)=CHR$(&H7F,&H7F,&H7F,&H7F,&HF7,&HF7,&HF7,&HF7)
- 36175 '//////// [18]暗いしろグレー
- 36180 MESH$(18)=CHR$(&H70,&H70,&H70,&H70,&H07,&H07,&H07,&H07)
- 36190 RETURN
- 36195 '
- 36990 '
- 37000 *分析モード読み取り
- 37005 RESTORE *分析モード項目:READ MODEN
- 37010 FOR SMODE=1 TO MODEN
- 37015 READ SMODE$(SMODE)
- 37020 FOR II=1 TO 3:READ SMOPT(SMODE,II):NEXT II
- 37025 NEXT SMODE
- 37030 SMODE=1
- 37035 RESTORE *項目データ
- 37040 FOR II=1 TO 20
- 37045 READ ITEM$(II),ITEMC(II)
- 37046 IF II>1 AND II<17 THEN ITEM$(II)=CFI$(II-1)
- 37050 NEXT II
- 37055 RETURN
- 37060 '
- 37065 *ボタン座標読み取り
- 37070 RESTORE *ボタン座標:READ SWGN
- 37075 FOR G=1 TO SWGN
- 37080 READ SWN(G),SMX(G),SMY(G),SMW(G)
- 37085 FOR B=1 TO SWN(G)
- 37090 READ XB1(G,B),XB2(G,B),YB1(G,B),YB2(G,B)
- 37095 NEXT B
- 37100 NEXT G
- 37105 RETURN
- 37110 '
- 37115 *ボタンON_OFF表示
- 37120 IF BST(G,B)=1 THEN BSC=7:BSB=0:BSA=2:GOTO 37130
- 37125 BSC=0:BSB=7:BSA=5
- 37130 CONNECT(XB1(G,B ),YB2(G,B) )-(XB2(G,B) ,YB2(G,B) )-(XB2(G,B ),YB1(G,B) ),BSC,PSET
- 37135 CONNECT(XB1(G,B)+1,YB2(G,B)-1)-(XB2(G,B)-1,YB2(G,B)-1)-(XB2(G,B)-1,YB1(G,B)+1),BSC,PSET
- 37140 CONNECT(XB1(G,B) ,YB2(G,B) )-(XB1(G,B) ,YB1(G,B) )-(XB2(G,B) ,YB1(G,B) ),BSB,PSET
- 37145 CONNECT(XB1(G,B)+1,YB2(G,B)-1)-(XB1(G,B)+1,YB1(G,B)+1)-(XB2(G,B)-1,YB1(G,B)+1),BSB,PSET
- 37150 LINE(XB1(G,B)+4,YB1(G,B)+4)-(XB1(G,B)+6,YB1(G,B)+5),PSET,BSA,BF
- 37152 IF BST(G,B)=1 THEN SMSGPLAY 0:WAIT 8
- 37155 RETURN
- 37160 '
- 37165 *マウスボタン選択
- 37170 SWERC=0
- 37175 IF MOUSE(2,0)=0 THEN 37175
- 37180 X_M=MOUSE(4,0):Y_M=MOUSE(5,0):SWNO=0
- 37185 FOR IMS=1 TO SWN(G)
- 37190 IF (X_M>XB1(G,IMS) AND X_M<XB2(G,IMS)) ELSE 37205
- 37195 IF (Y_M>YB1(G,IMS) AND Y_M<YB2(G,IMS)) ELSE 37205
- 37200 SWNO=IMS:IMS=SWN(G)+1
- 37205 NEXT IMS:FOR IM=1 TO 500:NEXT IM
- 37210 IF SWNO=0 AND SWPASS=1 THEN GOSUB *シート選択判定:GOTO 37230
- 37215 IF SWNO=0 AND SWERC>5 THEN MESN=12:GOSUB *SNDMSG :GOTO 37175
- 37220 IF SWNO=0 THEN SMSGPLAY 3:SWERC=SWERC+1:GOTO 37175
- 37230 SWPASS=0
- 37235 RETURN
- 37240 '
- 37245 *数字漢字変換
- 37250 NBK$=""
- 37255 FOR INBK=1 TO NBN
- 37260 NBAX$=MID$(NBA$,INBK,1)
- 37265 IF NBAX$=" " THEN NBK$=NBK$+" ":GOTO 37275
- 37270 NBK$=NBK$+KNJ$(&H2330+VAL(NBAX$))
- 37275 NEXT INBK
- 37280 RETURN
- 37285 '
- 37290 '
- 37305 '
- 37310 *FADEOUT:CLS 1:CONSOLE 0,24,0
- 37315 FOR II=0 TO 15
- 37320 PALETTE II,[16*II,16*II,16*II]
- 37325 NEXT II
- 37330 FOR II=0 TO 255 STEP 5
- 37335 FOR JJ=0 TO 15:KK=16*JJ+II*(255-16*JJ)/255
- 37340 PALETTE JJ,[KK,KK,KK]
- 37345 NEXT JJ
- 37350 NEXT II
- 37355 RETURN
- 37360 '
- 37365 *確認
- 37370 LOCATE 27,3:PRINT SPACE$(52)
- 37375 GET@A(214,50)-(630,79),CUTN#
- 37380 LOAD@ TIFDRV$+"\CAUTION.TIF",(214,50)
- 37382 PLAY "o6l4ce"
- 37385 FOR II=1 TO 4
- 37390 LOCATE 40,3:COLOR 6:PRINT CMES$;:'28chr
- 37395 WAIT SWAIT/10
- 37400 LOCATE 40,3:PRINT SPACE$(28)
- 37405 WAIT SWAIT/10
- 37410 NEXT II
- 37415 LOCATE 40,3:COLOR 7:PRINT CMES$;:MESN=19:GOSUB *SNDMSG:'28chr
- 37420 G=3:GOSUB *マウスボタン選択
- 37425 G=3:B=SWNO:BST(G,B)=1:GOSUB *ボタンON_OFF表示
- 37430 LOCATE 40,3:PRINT SPACE$(28)
- 37435 WAIT SWAIT/5
- 37440 PUT@A(214,50)-(630,79),CUTN#
- 37445 RETURN
- 37450 '
- 37500 *HKIOPN:'---------- インデックスファイルオープン
- 37510 DRV$=LEFT$(DATDRV$,2)
- 37520 IF LEN(DATDRV$)=3 THEN DRV$=LEFT$(DATDRV$,2):PATH$="":GOTO 37540
- 37530 PATH$=RIGHT$(DATDRV$,LEN(DATDRV$)-2)
- 37540 FLN$=DRV$+"(38)"+PATH$+"\HLIDX.DAT"
- 37550 OPEN "R",#2,FLN$
- 37560 FIELD #2,6 AS I$(1),32 AS I$(2)
- 37570 IR=LOF(2)
- 37580 RETURN
- 37590 '
- 37600 *HKDOPN:'---------- 家計簿データファイルオープン
- 37610 DRV$=LEFT$(DATDRV$,2)
- 37620 IF LEN(DATDRV$)=3 THEN DRV$=LEFT$(DATDRV$,2):PATH$="":GOTO 37640
- 37630 PATH$=RIGHT$(DATDRV$,LEN(DATDRV$)-2)
- 37640 FLN$=DRV$+"(768)"+PATH$+"\HL"+IYM$+".DAT"
- 37650 OPEN "R",#1,FLN$
- 37660 FIELD #1,64 AS D$(1),10*16 AS D$(2),32*4 AS D$(3),32*4 AS D$(4),32*4 AS D$(5),32*4 AS D$(6),32 AS D$(7)
- 37670 AR=LOF(1)
- 37680 RETURN
- 37690 '
- 37700 *ANLSOPN:'---------- 分析条件ファイルオープン
- 37710 DRV$=LEFT$(PRGDRV$,2)
- 37720 IF LEN(PRGDRV$)=3 THEN DRV$=LEFT$(PRGDRV$,2):PATH$="":GOTO 37740
- 37730 PATH$=RIGHT$(PRGDRV$,LEN(PRGDRV$)-2)
- 37740 FLN$=DRV$+"(54)"+PATH$+"\ANLS.DAT"
- 37750 OPEN "R",#1,FLN$
- 37760 FIELD #1,4 AS S$(1),2 AS S$(2),4 AS S$(3),2 AS S$(4),24 AS S$(5),8 AS S$(6),8 AS S$(7),2 AS S$(8)
- 37770 RETURN
- 37780 '
- 37790 *HKTOPN:'---------- 年間統計ファイルオープン
- 37800 DRV$=LEFT$(DATDRV$,2)
- 37810 IF LEN(DATDRV$)=3 THEN DRV$=LEFT$(DATDRV$,2):PATH$="":GOTO 37830
- 37820 PATH$=RIGHT$(DATDRV$,LEN(DATDRV$)-2)
- 37830 FLN$=DRV$+"(200)"+PATH$+"\HL"+LEFT$(IYM$,4)+"AL.DAT"
- 37840 OPEN "R",#1,FLN$
- 37850 FIELD #1,10*20 AS M$
- 37860 RETURN
- 37870 '
- 37880 *HKISRC:'---------- インデックスファイル検索
- 37890 FIDX=0
- 37900 GOSUB *HKIOPN
- 37910 FOR R=1 TO IR
- 37920 GET #2,R
- 37930 IF IYM$<>I$(1) THEN 37950
- 37940 IYM$=I$(1):IMAK$=I$(2):RI=R:R=IR+1:FIDX=1
- 37950 NEXT R:IF FIDX=0 THEN 37980
- 37960 GET #2,RI
- 37965 YRM$=LEFT$(I$(1),4):MNM$=RIGHT$(I$(1),2)
- 37970 YRM=VAL(YRM$):MNM=VAL(MNM$)
- 37980 CLOSE #2
- 37990 RETURN
- 38000 '
- 38010 *HKIPUT:'---------- インデックスファイル書き込み
- 38020 GOSUB *HKIOPN
- 38030 LSET I$(1)=IYM$
- 38040 LSET I$(2)=IMAK$
- 38050 PUT #2,RI
- 38060 CLOSE #2
- 38070 RETURN
- 38080 '
- 38090 *HKDGET:'---------- 家計簿データ読み込み
- 38100 GOSUB *HKDOPN
- 38110 R=RDY
- 38120 GET #1,R
- 38130 DEV$=D$(1)
- 38140 FOR II=1 TO 16:DYN$(II )=MID$(D$(2),(II-1)*10+1,10):NEXT II
- 38150 FOR II=1 TO 4:DRM$(II+ 0)=MID$(D$(3),(II-1)*32+1,32):NEXT II
- 38160 FOR II=1 TO 4:DRM$(II+ 4)=MID$(D$(4),(II-1)*32+1,32):NEXT II
- 38170 FOR II=1 TO 4:DRM$(II+ 8)=MID$(D$(5),(II-1)*32+1,32):NEXT II
- 38180 FOR II=1 TO 4:DRM$(II+12)=MID$(D$(6),(II-1)*32+1,32):NEXT II
- 38190 DDM$=D$(7)
- 38200 GOSUB *HKDCAL
- 38210 CLOSE #1
- 38220 RETURN
- 38230 '
- 38240 *HKDCAL:'---------- 家計簿金額計算
- 38250 FOR II=1 TO 15:DYN#(II)=VAL(DYN$(II)):NEXT II
- 38255 IF TCALF=1 THEN TCALF=0:RETURN
- 38260 DYN#(16)=0:FOR II=1 TO 3 :DYN#(16)=DYN#(16)+DYN#(II):NEXT II
- 38270 DYN$(16)=RIGHT$(SPACE$(8)+STR$(DYN#(16)),8)
- 38280 DYN#(18)=0:FOR II=4 TO 7 :DYN#(18)=DYN#(18)+DYN#(II):NEXT II
- 38290 DYN$(18)=RIGHT$(SPACE$(8)+STR$(DYN#(18)),8)
- 38300 DYN#(17)=0:FOR II=4 TO 15:DYN#(17)=DYN#(17)+DYN#(II):NEXT II
- 38310 DYN$(17)=RIGHT$(SPACE$(8)+STR$(DYN#(17)),8)
- 38320 RETURN
- 38330 '
- 38340 *ANLSGET:'---------- 分析条件ファイル読み込み
- 38350 GOSUB *ANLSOPN
- 38360 GET #1,1
- 38370 FOR II=1 TO 8:SX$(II)=S$(II):NEXT II
- 38380 CLOSE #1
- 38390 SR1YR=VAL(SX$(1)):SR1MN=VAL(SX$(2))
- 38400 SR2YR=VAL(SX$(3)):SR2MN=VAL(SX$(4))
- 38410 RETURN
- 38420 '
- 38430 *ANLSPUT:'---------- 分析条件ファイル書き込み
- 38440 GOSUB *ANLSOPN
- 38450 FOR II=1 TO 8:LSET S$(II)=SX$(II):NEXT II
- 38460 PUT #1,1
- 38470 CLOSE #1
- 38480 RETURN
- 38490 '
- 38500 *HKTGET:'---------- 年間統計ファイル読み込み
- 38510 GOSUB *HKTOPN
- 38520 R=RMN
- 38530 GET #1,R
- 38540 FOR II=1 TO 20
- 38550 MX$(II)=MID$(M$,(II-1)*10+1,10)
- 38560 MX#(II)=VAL(MX$(II))
- 38570 NEXT II
- 38580 CLOSE #1
- 38590 RETURN
- 38600 '
- 38610 *HKTPUT:'---------- 年間統計ファイル書き込み
- 38620 GOSUB *HKTOPN
- 38630 R=RMN:MX$=SPACE$(200)
- 38640 FOR II=1 TO 20
- 38650 MX$(II)=RIGHT$(SPACE$(10)+STR$(MX#(II)),10)
- 38660 MID$(MX$,(II-1)*10+1,10)=MX$(II)
- 38670 LSET M$=MX$
- 38680 NEXT II
- 38690 PUT #1,R
- 38700 CLOSE #1
- 38710 RETURN
- 38720 '
- 38730 *HKTCAL:'---------- 年間統計ファイル演算
- 38735 LXX=POS(0):LYX=CSRLIN
- 38740 FOR II=1 TO 20:MX#(II)=0:NEXT II
- 38750 FOR RDY=1 TO 31
- 38755 LOCATE 60,23:COLOR 4
- 38756 PRINT YRM$;".";MNM$;".";RIGHT$(" "+STR$(RDY),2);" 演算中";
- 38760 GOSUB *HKDGET
- 38770 FOR II=1 TO 18
- 38780 MX#(II)=MX#(II)+DYN#(II)
- 38790 NEXT II
- 38800 NEXT RDY
- 38810 CLOSE:LOCATE 60,23:COLOR 7:PRINT SPACE$(19);
- 38820 LOCATE LXX,LYX:RETURN
- 38830 '
- 38840 *HKIGET:'---------- インデックスデータ読みだし
- 38850 GOSUB *HKIOPN
- 38860 GET #2,RI
- 38870 IYM$=I$(1):IMAK$=I$(2)
- 38880 YRM$=LEFT$(I$(1),4):MNM$=RIGHT$(I$(1),2)
- 38890 YRM=VAL(YRM$):MNM=VAL(MNM$)
- 38900 CLOSE #2
- 38910 RETURN
- 38920 '
- 39000 '//////////////////////////////////////////////////
- 39010 *CONFIGファイルチェック' V1.1 1993.08.04
- 39020 ' FOR HK T.Komura
- 39030 OPEN "R",#1,"(1)HK.CFG"
- 39040 FIELD #1,1 AS D$
- 39050 IF LOF(1)=0 THEN *CFGFE1
- 39060 CLOSE
- 39070 OPEN "I",#1,"HK.CFG"
- 39080 GOSUB *CFGREAD:PRGDRV$=CFG$:'-- PRGDRV$
- 39090 GOSUB *CFGREAD:DATDRV$=CFG$:'-- DATDRV$
- 39100 GOSUB *CFGREAD:RAMDRV$=CFG$:'-- RAMDRV$
- 39110 TIFDRV$=PRGDRV$+"\TIFF" :'-- TIFDRV$
- 39120 GOSUB *CFGREAD:FMBDRV$=CFG$:'-- FMBDRV$
- 39130 GOSUB *CFGREAD :'-- SNDMF
- 39140 IF LEFT$(CFG$,5)<>"SNDMF" THEN *CFGFE2
- 39150 SNDMF=VAL(RIGHT$(CFG$,1))
- 39160 GOSUB *CFGREAD:SNDDRV$=CFG$:'-- SNDDRV$
- 39170 GOSUB *CFGREAD :'-- SWAIT
- 39180 IF LEFT$(CFG$,4)<>"WAIT" THEN *CFGFE2
- 39190 SWAIT=VAL(RIGHT$(CFG$,LEN(CFG$)-5))
- 39200 FOR II=1 TO 15
- 39210 GOSUB *CFGREAD:CFI$(II)=CFG$
- 39220 NEXT II
- 39230 GOSUB *CFGREAD :'-- DICIF
- 39240 IF LEFT$(CFG$,5)<>"DICIF" THEN *CFGFE2
- 39250 DICIF=VAL(RIGHT$(CFG$,1))
- 39260 GOSUB *CFGREAD :'-- DICSF
- 39270 IF LEFT$(CFG$,5)<>"DICSF" THEN *CFGFE2
- 39280 DICSF=VAL(RIGHT$(CFG$,1))
- 39290 GOSUB *CFGREAD:DICDRV$=CFG$:'-- DICDRV$
- 39300 CLOSE
- 39310 RETURN
- 39320 '---------------------------------------------
- 39330 *CFGFE1
- 39340 LOCATE 2,23:COLOR 6:PRINT "HK.CFG ファイルが見当たりません。 家計簿を終了します。"
- 39350 CLOSE:WAIT 100:SYSTEM
- 39360 *CFGFE2
- 39370 LOCATE 2,23:COLOR 6:PRINT "HK.CFG ファイルの内容に誤りがあります。 家計簿を終了します。"
- 39380 CLOSE:WAIT 100:SYSTEM
- 39390 *CFGFE3
- 39400 LOCATE 2,23:COLOR 6:PRINT "HK.CFG ファイルの項目に不足があります。 家計簿を終了します。"
- 39410 CLOSE:WAIT 100:SYSTEM
- 39420 *CFGREAD
- 39430 IF EOF(1)<>0 THEN *CFGFE3
- 39440 LINE INPUT #1,CFG$
- 39450 IF LEFT$(CFG$,1)="/" THEN 39430
- 39460 RETURN
- 39470 '//////////////////////////////////////////////////
- 39480 '
- 40000 *ボタン座標:'-------------------------------------------------------
- 40010 DATA 3 'SWGN スイッチグループ数
- 40090 '/////////////////////////////
- 40100 '-------------------- [G1] メインスイッチグループ
- 40110 ' SWN(G),SMX,SMY,SMW
- 40120 DATA 6 ,0.5,0.6, 1
- 40130 ' XB1 XB2 YB1 YB2
- 40140 DATA 216,239, 56, 73 '"▲"---------- 1
- 40150 DATA 240,263, 56, 73 '"▼"---------- 2
- 40160 DATA 264,309, 56, 73 '"SELECT"------ 3
- 40170 DATA 552,591, 42, 79 '"実行"-------- 4
- 40180 DATA 592,630, 42, 79 '"取消"-------- 5
- 40210 DATA 592,630, 3, 41 '"END"--------- 6
- 40220 '-------------------- [G2] 分析メニュースイッチグループ
- 40230 ' SWN(G),SMX,SMY,SMW
- 40240 DATA 30 ,0.5,0.6, 0
- 40250 ' XB1 XB2 YB1 YB2
- 40260 DATA 466,509,131,159 '"決定"-------- 1
- 40270 DATA 510,551,131,159 '"取消"-------- 2
- 40280 DATA 380,399,171,187 '"▲"---------- 3
- 40290 DATA 400,419,171,187 '"▼"---------- 4
- 40300 DATA 483,502,171,187 '"▲"---------- 5
- 40310 DATA 503,522,171,187 '"▼"---------- 6
- 40320 DATA 380,399,209,225 '"▲"---------- 7
- 40330 DATA 400,419,209,225 '"▼"---------- 8
- 40340 DATA 483,502,209,225 '"▲"---------- 9
- 40350 DATA 503,522,209,225 '"▼"----------10
- 40390 '
- 40400 DATA 494,539,301,317 ',"出来事",0---11
- 40405 DATA 310,355,247,263 ',"給 与",0---12
- 40410 DATA 310,355,264,280 ',"臨 時",0---13
- 40420 DATA 310,355,281,297 ',"他収入",0---14
- 40430 DATA 356,401,247,263 ',"食 費",1---15
- 40440 DATA 356,401,264,280 ',"生活費",1---16
- 40450 DATA 356,401,281,297 ',"洗濯代",1---17
- 40460 DATA 402,447,247,263 ',"光熱費",1---18
- 40470 DATA 402,447,264,280 ',"被服費",0---19
- 40480 DATA 402,447,281,297 ',"交際費",0---20
- 40490 DATA 448,493,247,263 ',"娯楽費",0---21
- 40500 DATA 448,493,264,280 ',"酒 代",0---22
- 40510 DATA 448,493,281,297 ',"車維持",0---23
- 40520 DATA 494,539,247,263 ',"教育費",0---24
- 40530 DATA 494,539,264,280 ',"雑 費",0---25
- 40540 DATA 494,539,281,297 ',"他支出",0---26
- 40550 DATA 310,355,301,317 ',"全収入",2---27
- 40560 DATA 356,401,301,317 ',"基支出",1---28
- 40570 DATA 402,447,301,317 ',"全支出",2---29
- 40580 DATA 448,493,301,317 ',"全収支",2---30
- 40600 '-------------------- [G3] 確認スイッチグループ
- 40610 ' SWN(G),SMX,SMY,SMW
- 40620 DATA 2 ,0.8,0.8, 0
- 40630 ' XB1 XB2 YB1 YB2
- 40640 DATA 552,583, 56, 73 '"OK"---------- 1
- 40650 DATA 584,615, 56, 73 '"NG"---------- 2
- 40690 '
- 40750 '
- 50000 *分析モード項目
- 50010 DATA 9 '10
- 50015 ' " 分析モード ",開始,終了,項目
- 50016 ' SMOPT(SMODE, [1] [2] [3] ) 0:無効
- 50017 ' 1:全項目有効
- 50018 ' 2:合計項目無効
- 50020 DATA "月間合計額推移", 1, 24, 1
- 50030 DATA "月間合計額累積", 1, 24, 1
- 50040 DATA "日別項目別変動", 1, 12, 2
- 50050 DATA "月間収支推移 ", 1, 24, 0
- 50060 DATA "月間日累積推移", 1, 6, 1
- 50070 DATA "項目別比率分析", 1, 48, 0
- 50080 DATA "エンゲル係数推移 ", 1, 18, 0
- 50090 'DATA "年別動向比較 ", 1, 48, 1
- 50100 DATA "月間レポート印刷 ", 1, 0, 0
- 50110 DATA "総計演算処理 ", 0, 0, 0
- 50190 '
- 51300 *項目データ:' SITM
- 51400 DATA "出来事",0'----- 1
- 51410 DATA "給 与",4'----- 2
- 51420 DATA "臨 時",4'----- 3
- 51430 DATA "他収入",4'----- 4
- 51440 DATA "食 費",1'----- 5
- 51450 DATA "生活費",1'----- 6
- 51460 DATA "洗濯代",1'----- 7
- 51470 DATA "光熱費",1'----- 8
- 51480 DATA "被服費",1'----- 9
- 51490 DATA "交際費",1'-----10
- 51500 DATA "娯楽費",1'-----11
- 51510 DATA "酒 代",1'-----12
- 51520 DATA "車維持",1'-----13
- 51530 DATA "教育費",1'-----14
- 51540 DATA "雑 費",1'-----15
- 51550 DATA "他支出",2'-----16
- 51560 DATA "全収入",2'-----17
- 51570 DATA "基支出",2'-----18
- 51580 DATA "全支出",2'-----19
- 51590 DATA "全収支",2'-----20
- 60000 '
- 60010 ' 座標確認 DEBUG ROUTINE
- 60020 '
- 60030 MOUSE 0:MOUSE 1,0,0,1
- 60040 IF MOUSE(2,1)<>0 THEN STOP
- 60050 IF MOUSE(2,0)=0 THEN 60050
- 60060 X_M=MOUSE(4,0):Y_M=MOUSE(5,0):LX=INT(X_M/8):LY=INT(Y_M/19)
- 60070 LOCATE 2,24:COLOR 7:PRINT "X=";X_M,"Y=";Y_M,"LX=";LX,"LY=";LY;
- 60080 GOTO 60040
- 61000 '
- 61100 *分析条件TESTファイル作成
- 61110 DATDRV$="A:\"
- 61120 SX$(1)="1992"
- 61130 SX$(2)="01"
- 61140 SX$(3)="1992"
- 61150 SX$(4)="07"
- 61160 SX$(5)="012345678901234567890123"
- 61165 SX$(5)="0123456789小村利明890123"
- 61170 SX$(6)="00000000"
- 61180 SX$(7)="99999999"
- 61190 SX$(8)="01"
- 61200 GOSUB *ANLSPUT
- 61210 STOP
- 62000 LOCATE 2,6:COLOR 0'
- 62010 PRINT "1992.02.14(日) 給 与 00000000 ";STRING$(32,"A");
- 62100 LOCATE 2,7:COLOR 0
- 62110 PRINT "1992.02.14 ";STRING$(64,"A");
- 62120 STOP
-